From 8641ffe6bf173c79d0d5b5f45c30a99e368f1df5 Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Thu, 3 Jul 2025 19:58:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=A0=E9=99=A4CRM=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/crm/business/index.ts | 118 ----------- .../src/api/crm/business/status/index.ts | 91 --------- apps/web-antd/src/api/crm/clue/index.ts | 86 -------- apps/web-antd/src/api/crm/contact/index.ts | 140 ------------- .../src/api/crm/contract/config/index.ts | 21 -- apps/web-antd/src/api/crm/contract/index.ts | 132 ------------ apps/web-antd/src/api/crm/customer/index.ts | 146 ------------- .../src/api/crm/customer/limitConfig/index.ts | 58 ------ .../src/api/crm/customer/poolConfig/index.ts | 26 --- apps/web-antd/src/api/crm/followup/index.ts | 53 ----- apps/web-antd/src/api/crm/operateLog/index.ts | 31 --- apps/web-antd/src/api/crm/permission/index.ts | 79 -------- .../src/api/crm/product/category/index.ts | 46 ----- apps/web-antd/src/api/crm/product/index.ts | 57 ------ apps/web-antd/src/api/crm/receivable/index.ts | 90 --------- .../src/api/crm/receivable/plan/index.ts | 98 --------- .../src/api/crm/statistics/customer.ts | 191 ------------------ .../web-antd/src/api/crm/statistics/funnel.ts | 67 ------ .../src/api/crm/statistics/performance.ts | 37 ---- .../src/api/crm/statistics/portrait.ts | 69 ------- apps/web-antd/src/api/crm/statistics/rank.ts | 76 ------- .../web-antd/src/router/routes/modules/crm.ts | 91 --------- 22 files changed, 1803 deletions(-) delete mode 100644 apps/web-antd/src/api/crm/business/index.ts delete mode 100644 apps/web-antd/src/api/crm/business/status/index.ts delete mode 100644 apps/web-antd/src/api/crm/clue/index.ts delete mode 100644 apps/web-antd/src/api/crm/contact/index.ts delete mode 100644 apps/web-antd/src/api/crm/contract/config/index.ts delete mode 100644 apps/web-antd/src/api/crm/contract/index.ts delete mode 100644 apps/web-antd/src/api/crm/customer/index.ts delete mode 100644 apps/web-antd/src/api/crm/customer/limitConfig/index.ts delete mode 100644 apps/web-antd/src/api/crm/customer/poolConfig/index.ts delete mode 100644 apps/web-antd/src/api/crm/followup/index.ts delete mode 100644 apps/web-antd/src/api/crm/operateLog/index.ts delete mode 100644 apps/web-antd/src/api/crm/permission/index.ts delete mode 100644 apps/web-antd/src/api/crm/product/category/index.ts delete mode 100644 apps/web-antd/src/api/crm/product/index.ts delete mode 100644 apps/web-antd/src/api/crm/receivable/index.ts delete mode 100644 apps/web-antd/src/api/crm/receivable/plan/index.ts delete mode 100644 apps/web-antd/src/api/crm/statistics/customer.ts delete mode 100644 apps/web-antd/src/api/crm/statistics/funnel.ts delete mode 100644 apps/web-antd/src/api/crm/statistics/performance.ts delete mode 100644 apps/web-antd/src/api/crm/statistics/portrait.ts delete mode 100644 apps/web-antd/src/api/crm/statistics/rank.ts delete mode 100644 apps/web-antd/src/router/routes/modules/crm.ts diff --git a/apps/web-antd/src/api/crm/business/index.ts b/apps/web-antd/src/api/crm/business/index.ts deleted file mode 100644 index ec544b9..0000000 --- a/apps/web-antd/src/api/crm/business/index.ts +++ /dev/null @@ -1,118 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -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; - name: string; - customerId: number; - customerName?: string; - followUpStatus: boolean; - contactLastTime: Date; - contactNextTime: Date; - ownerUserId: number; - ownerUserName?: string; // 负责人的用户名称 - ownerUserDept?: string; // 负责人的部门名称 - statusTypeId: number; - statusTypeName?: string; - statusId: number; - statusName?: string; - endStatus: number; - endRemark: string; - dealTime: Date; - totalProductPrice: number; - totalPrice: number; - discountPercent: number; - remark: string; - creator: string; // 创建人 - creatorName?: string; // 创建人名称 - createTime: Date; // 创建时间 - updateTime: Date; // 更新时间 - products?: BusinessProduct[]; - } -} - -/** 查询商机列表 */ -export function getBusinessPage(params: PageParam) { - return requestClient.get>( - '/crm/business/page', - { params }, - ); -} - -/** 查询商机列表,基于指定客户 */ -export function getBusinessPageByCustomer(params: PageParam) { - return requestClient.get>( - '/crm/business/page-by-customer', - { params }, - ); -} - -/** 查询商机详情 */ -export function getBusiness(id: number) { - return requestClient.get( - `/crm/business/get?id=${id}`, - ); -} - -/** 获得商机列表(精简) */ -export function getSimpleBusinessList() { - return requestClient.get( - '/crm/business/simple-all-list', - ); -} - -/** 新增商机 */ -export function createBusiness(data: CrmBusinessApi.Business) { - return requestClient.post('/crm/business/create', data); -} - -/** 修改商机 */ -export function updateBusiness(data: CrmBusinessApi.Business) { - return requestClient.put('/crm/business/update', data); -} - -/** 修改商机状态 */ -export function updateBusinessStatus(data: CrmBusinessApi.Business) { - return requestClient.put('/crm/business/update-status', data); -} - -/** 删除商机 */ -export function deleteBusiness(id: number) { - return requestClient.delete(`/crm/business/delete?id=${id}`); -} - -/** 导出商机 */ -export function exportBusiness(params: any) { - return requestClient.download('/crm/business/export-excel', params); -} - -/** 联系人关联商机列表 */ -export function getBusinessPageByContact(params: PageParam) { - return requestClient.get>( - '/crm/business/page-by-contact', - { params }, - ); -} - -/** 商机转移 */ -export function transferBusiness(data: CrmPermissionApi.TransferReq) { - return requestClient.put('/crm/business/transfer', data); -} diff --git a/apps/web-antd/src/api/crm/business/status/index.ts b/apps/web-antd/src/api/crm/business/status/index.ts deleted file mode 100644 index e1c8cfe..0000000 --- a/apps/web-antd/src/api/crm/business/status/index.ts +++ /dev/null @@ -1,91 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmBusinessStatusApi { - /** 商机状态信息 */ - export interface BusinessStatus { - id: number; - name: string; - percent: number; - } - - /** 商机状态组信息 */ - export interface BusinessStatusType { - id: number; - name: string; - deptIds: number[]; - statuses?: BusinessStatus[]; - } - - /** 默认商机状态 */ - export const DEFAULT_STATUSES = [ - { - endStatus: 1, - key: '结束', - name: '赢单', - percent: 100, - }, - { - endStatus: 2, - key: '结束', - name: '输单', - percent: 0, - }, - { - endStatus: 3, - key: '结束', - name: '无效', - percent: 0, - }, - ] as const; -} - -/** 查询商机状态组列表 */ -export function getBusinessStatusPage(params: PageParam) { - return requestClient.get>( - '/crm/business-status/page', - { params }, - ); -} - -/** 新增商机状态组 */ -export function createBusinessStatus( - data: CrmBusinessStatusApi.BusinessStatusType, -) { - return requestClient.post('/crm/business-status/create', data); -} - -/** 修改商机状态组 */ -export function updateBusinessStatus( - data: CrmBusinessStatusApi.BusinessStatusType, -) { - return requestClient.put('/crm/business-status/update', data); -} - -/** 查询商机状态类型详情 */ -export function getBusinessStatus(id: number) { - return requestClient.get( - `/crm/business-status/get?id=${id}`, - ); -} - -/** 删除商机状态 */ -export function deleteBusinessStatus(id: number) { - return requestClient.delete(`/crm/business-status/delete?id=${id}`); -} - -/** 获得商机状态组列表 */ -export function getBusinessStatusTypeSimpleList() { - return requestClient.get( - '/crm/business-status/type-simple-list', - ); -} - -/** 获得商机阶段列表 */ -export function getBusinessStatusSimpleList(typeId: number) { - return requestClient.get( - '/crm/business-status/status-simple-list', - { params: { typeId } }, - ); -} diff --git a/apps/web-antd/src/api/crm/clue/index.ts b/apps/web-antd/src/api/crm/clue/index.ts deleted file mode 100644 index 9d3447b..0000000 --- a/apps/web-antd/src/api/crm/clue/index.ts +++ /dev/null @@ -1,86 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -import type { CrmPermissionApi } from '#/api/crm/permission'; - -import { requestClient } from '#/api/request'; - -export namespace CrmClueApi { - /** 线索信息 */ - export interface Clue { - id: number; // 编号 - name: string; // 线索名称 - followUpStatus: boolean; // 跟进状态 - contactLastTime: Date; // 最后跟进时间 - contactLastContent: string; // 最后跟进内容 - contactNextTime: Date; // 下次联系时间 - ownerUserId: number; // 负责人的用户编号 - ownerUserName?: string; // 负责人的用户名称 - ownerUserDept?: string; // 负责人的部门名称 - transformStatus: boolean; // 转化状态 - customerId: number; // 客户编号 - customerName?: string; // 客户名称 - 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 function getCluePage(params: PageParam) { - return requestClient.get>('/crm/clue/page', { - params, - }); -} - -/** 查询线索详情 */ -export function getClue(id: number) { - return requestClient.get(`/crm/clue/get?id=${id}`); -} - -/** 新增线索 */ -export function createClue(data: CrmClueApi.Clue) { - return requestClient.post('/crm/clue/create', data); -} - -/** 修改线索 */ -export function updateClue(data: CrmClueApi.Clue) { - return requestClient.put('/crm/clue/update', data); -} - -/** 删除线索 */ -export function deleteClue(id: number) { - return requestClient.delete(`/crm/clue/delete?id=${id}`); -} - -/** 导出线索 */ -export function exportClue(params: any) { - return requestClient.download('/crm/clue/export-excel', params); -} - -/** 线索转移 */ -export function transferClue(data: CrmPermissionApi.TransferReq) { - return requestClient.put('/crm/clue/transfer', data); -} - -/** 线索转化为客户 */ -export function transformClue(id: number) { - return requestClient.put('/crm/clue/transform', { id }); -} - -/** 获得分配给我的、待跟进的线索数量 */ -export function getFollowClueCount() { - return requestClient.get('/crm/clue/follow-count'); -} diff --git a/apps/web-antd/src/api/crm/contact/index.ts b/apps/web-antd/src/api/crm/contact/index.ts deleted file mode 100644 index 62b5235..0000000 --- a/apps/web-antd/src/api/crm/contact/index.ts +++ /dev/null @@ -1,140 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -import type { CrmPermissionApi } from '#/api/crm/permission'; - -import { requestClient } from '#/api/request'; - -export namespace CrmContactApi { - /** 联系人信息 */ - export interface Contact { - id: number; // 编号 - name: string; // 联系人名称 - customerId: number; // 客户编号 - customerName?: string; // 客户名称 - contactLastTime: Date; // 最后跟进时间 - contactLastContent: string; // 最后跟进内容 - contactNextTime: Date; // 下次联系时间 - ownerUserId: number; // 负责人的用户编号 - ownerUserName?: string; // 负责人的用户名称 - ownerUserDept?: string; // 负责人的部门名称 - mobile: string; // 手机号 - telephone: string; // 电话 - qq: string; // QQ - wechat: string; // wechat - email: string; // email - areaId: number; // 所在地 - areaName?: string; // 所在地名称 - detailAddress: string; // 详细地址 - sex: number; // 性别 - master: boolean; // 是否主联系人 - post: string; // 职务 - parentId: number; // 上级联系人编号 - parentName?: string; // 上级联系人名称 - remark: string; // 备注 - creator: string; // 创建人 - creatorName?: string; // 创建人名称 - createTime: Date; // 创建时间 - updateTime: Date; // 更新时间 - } - - /** 联系人商机关联请求 */ - export interface ContactBusinessReq { - contactId: number; - businessIds: number[]; - } - - /** 商机联系人关联请求 */ - export interface BusinessContactReq { - businessId: number; - contactIds: number[]; - } -} - -/** 查询联系人列表 */ -export function getContactPage(params: PageParam) { - return requestClient.get>( - '/crm/contact/page', - { params }, - ); -} - -/** 查询联系人列表,基于指定客户 */ -export function getContactPageByCustomer(params: PageParam) { - return requestClient.get>( - '/crm/contact/page-by-customer', - { params }, - ); -} - -/** 查询联系人列表,基于指定商机 */ -export function getContactPageByBusiness(params: PageParam) { - return requestClient.get>( - '/crm/contact/page-by-business', - { params }, - ); -} - -/** 查询联系人详情 */ -export function getContact(id: number) { - return requestClient.get(`/crm/contact/get?id=${id}`); -} - -/** 新增联系人 */ -export function createContact(data: CrmContactApi.Contact) { - return requestClient.post('/crm/contact/create', data); -} - -/** 修改联系人 */ -export function updateContact(data: CrmContactApi.Contact) { - return requestClient.put('/crm/contact/update', data); -} - -/** 删除联系人 */ -export function deleteContact(id: number) { - return requestClient.delete(`/crm/contact/delete?id=${id}`); -} - -/** 导出联系人 */ -export function exportContact(params: any) { - return requestClient.download('/crm/contact/export-excel', params); -} - -/** 获得联系人列表(精简) */ -export function getSimpleContactList() { - return requestClient.get( - '/crm/contact/simple-all-list', - ); -} - -/** 批量新增联系人商机关联 */ -export function createContactBusinessList( - data: CrmContactApi.ContactBusinessReq, -) { - return requestClient.post('/crm/contact/create-business-list', data); -} - -/** 批量新增商机联系人关联 */ -export function createBusinessContactList( - data: CrmContactApi.BusinessContactReq, -) { - return requestClient.post('/crm/contact/create-business-list2', data); -} - -/** 解除联系人商机关联 */ -export function deleteContactBusinessList( - data: CrmContactApi.ContactBusinessReq, -) { - return requestClient.delete('/crm/contact/delete-business-list', { data }); -} - -/** 解除商机联系人关联 */ -export function deleteBusinessContactList( - data: CrmContactApi.BusinessContactReq, -) { - return requestClient.delete('/crm/contact/delete-business-list2', { data }); -} - -/** 联系人转移 */ -export function transferContact(data: CrmPermissionApi.TransferReq) { - return requestClient.put('/crm/contact/transfer', data); -} diff --git a/apps/web-antd/src/api/crm/contract/config/index.ts b/apps/web-antd/src/api/crm/contract/config/index.ts deleted file mode 100644 index 09dbdfe..0000000 --- a/apps/web-antd/src/api/crm/contract/config/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { requestClient } from '#/api/request'; - -export namespace CrmContractConfigApi { - /** 合同配置信息 */ - export interface Config { - notifyEnabled?: boolean; - notifyDays?: number; - } -} - -/** 获取合同配置 */ -export function getContractConfig() { - return requestClient.get( - '/crm/contract-config/get', - ); -} - -/** 更新合同配置 */ -export function saveContractConfig(data: CrmContractConfigApi.Config) { - return requestClient.put('/crm/contract-config/save', data); -} diff --git a/apps/web-antd/src/api/crm/contract/index.ts b/apps/web-antd/src/api/crm/contract/index.ts deleted file mode 100644 index 1ae165d..0000000 --- a/apps/web-antd/src/api/crm/contract/index.ts +++ /dev/null @@ -1,132 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -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; - name: string; - no: string; - customerId: number; - customerName?: string; - businessId: number; - businessName: string; - contactLastTime: Date; - ownerUserId: number; - ownerUserName?: string; - ownerUserDeptName?: string; - processInstanceId: number; - auditStatus: number; - orderDate: Date; - startTime: Date; - endTime: Date; - totalProductPrice: number; - discountPercent: number; - totalPrice: number; - totalReceivablePrice: number; - signContactId: number; - signContactName?: string; - signUserId: number; - signUserName: string; - remark: string; - createTime?: Date; - creator: string; - creatorName: string; - updateTime?: Date; - products?: ContractProduct[]; - } -} - -/** 查询合同列表 */ -export function getContractPage(params: PageParam) { - return requestClient.get>( - '/crm/contract/page', - { params }, - ); -} - -/** 查询合同列表,基于指定客户 */ -export function getContractPageByCustomer(params: PageParam) { - return requestClient.get>( - '/crm/contract/page-by-customer', - { params }, - ); -} - -/** 查询合同列表,基于指定商机 */ -export function getContractPageByBusiness(params: PageParam) { - return requestClient.get>( - '/crm/contract/page-by-business', - { params }, - ); -} - -/** 查询合同详情 */ -export function getContract(id: number) { - return requestClient.get( - `/crm/contract/get?id=${id}`, - ); -} - -/** 查询合同下拉列表 */ -export function getContractSimpleList(customerId: number) { - return requestClient.get( - `/crm/contract/simple-list?customerId=${customerId}`, - ); -} - -/** 新增合同 */ -export function createContract(data: CrmContractApi.Contract) { - return requestClient.post('/crm/contract/create', data); -} - -/** 修改合同 */ -export function updateContract(data: CrmContractApi.Contract) { - return requestClient.put('/crm/contract/update', data); -} - -/** 删除合同 */ -export function deleteContract(id: number) { - return requestClient.delete(`/crm/contract/delete?id=${id}`); -} - -/** 导出合同 */ -export function exportContract(params: any) { - return requestClient.download('/crm/contract/export-excel', params); -} - -/** 提交审核 */ -export function submitContract(id: number) { - return requestClient.put(`/crm/contract/submit?id=${id}`); -} - -/** 合同转移 */ -export function transferContract(data: CrmPermissionApi.TransferReq) { - return requestClient.put('/crm/contract/transfer', data); -} - -/** 获得待审核合同数量 */ -export function getAuditContractCount() { - return requestClient.get('/crm/contract/audit-count'); -} - -/** 获得即将到期(提醒)的合同数量 */ -export function getRemindContractCount() { - return requestClient.get('/crm/contract/remind-count'); -} diff --git a/apps/web-antd/src/api/crm/customer/index.ts b/apps/web-antd/src/api/crm/customer/index.ts deleted file mode 100644 index 3f7faaa..0000000 --- a/apps/web-antd/src/api/crm/customer/index.ts +++ /dev/null @@ -1,146 +0,0 @@ -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 function getCustomerPage(params: PageParam) { - return requestClient.get>( - '/crm/customer/page', - { params }, - ); -} - -/** 查询客户详情 */ -export function getCustomer(id: number) { - return requestClient.get( - `/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(file: File) { - return requestClient.upload('/crm/customer/import', { file }); -} - -/** 获取客户精简信息列表 */ -export function getCustomerSimpleList() { - return requestClient.get( - '/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, - dealStatus, - }); -} - -/** 进入公海客户提醒的客户列表 */ -export function getPutPoolRemindCustomerPage(params: PageParam) { - return requestClient.get>( - '/crm/customer/put-pool-remind-page', - { params }, - ); -} - -/** 获得待进入公海客户数量 */ -export function getPutPoolRemindCustomerCount() { - return requestClient.get('/crm/customer/put-pool-remind-count'); -} - -/** 获得今日需联系客户数量 */ -export function getTodayContactCustomerCount() { - return requestClient.get('/crm/customer/today-contact-count'); -} - -/** 获得分配给我、待跟进的线索数量的客户数量 */ -export function getFollowCustomerCount() { - return requestClient.get('/crm/customer/follow-count'); -} diff --git a/apps/web-antd/src/api/crm/customer/limitConfig/index.ts b/apps/web-antd/src/api/crm/customer/limitConfig/index.ts deleted file mode 100644 index 7732557..0000000 --- a/apps/web-antd/src/api/crm/customer/limitConfig/index.ts +++ /dev/null @@ -1,58 +0,0 @@ -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 - >('/crm/customer-limit-config/page', { params }); -} - -/** 查询客户限制配置详情 */ -export function getCustomerLimitConfig(id: number) { - return requestClient.get( - `/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}`); -} diff --git a/apps/web-antd/src/api/crm/customer/poolConfig/index.ts b/apps/web-antd/src/api/crm/customer/poolConfig/index.ts deleted file mode 100644 index ecb2970..0000000 --- a/apps/web-antd/src/api/crm/customer/poolConfig/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -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( - '/crm/customer-pool-config/get', - ); -} - -/** 更新客户公海规则设置 */ -export function saveCustomerPoolConfig( - data: CrmCustomerPoolConfigApi.CustomerPoolConfig, -) { - return requestClient.put('/crm/customer-pool-config/save', data); -} diff --git a/apps/web-antd/src/api/crm/followup/index.ts b/apps/web-antd/src/api/crm/followup/index.ts deleted file mode 100644 index 361acdc..0000000 --- a/apps/web-antd/src/api/crm/followup/index.ts +++ /dev/null @@ -1,53 +0,0 @@ -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; // 编号 - bizType: number; // 数据类型 - bizId: number; // 数据编号 - type: number; // 跟进类型 - content: string; // 跟进内容 - picUrls: string[]; // 图片 - fileUrls: string[]; // 附件 - nextTime: Date; // 下次联系时间 - businessIds: number[]; // 关联的商机编号数组 - businesses: Business[]; // 关联的商机数组 - contactIds: number[]; // 关联的联系人编号数组 - contacts: Contact[]; // 关联的联系人数组 - creator: string; - creatorName?: string; - } -} - -/** 查询跟进记录分页 */ -export function getFollowUpRecordPage(params: PageParam) { - return requestClient.get>( - '/crm/follow-up-record/page', - { params }, - ); -} - -/** 新增跟进记录 */ -export function createFollowUpRecord(data: CrmFollowUpApi.FollowUpRecord) { - return requestClient.post('/crm/follow-up-record/create', data); -} - -/** 删除跟进记录 */ -export function deleteFollowUpRecord(id: number) { - return requestClient.delete(`/crm/follow-up-record/delete?id=${id}`); -} diff --git a/apps/web-antd/src/api/crm/operateLog/index.ts b/apps/web-antd/src/api/crm/operateLog/index.ts deleted file mode 100644 index 2c5f8fd..0000000 --- a/apps/web-antd/src/api/crm/operateLog/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmOperateLogApi { - /** 操作日志查询参数 */ - export interface OperateLogQuery extends PageParam { - bizType: number; - bizId: number; - } - - /** 操作日志信息 */ - export interface OperateLog { - id: number; - bizType: number; - bizId: number; - type: number; - content: string; - creator: string; - creatorName?: string; - createTime: Date; - } -} - -/** 获得操作日志 */ -export function getOperateLogPage(params: CrmOperateLogApi.OperateLogQuery) { - return requestClient.get>( - '/crm/operate-log/page', - { params }, - ); -} diff --git a/apps/web-antd/src/api/crm/permission/index.ts b/apps/web-antd/src/api/crm/permission/index.ts deleted file mode 100644 index a0362e0..0000000 --- a/apps/web-antd/src/api/crm/permission/index.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmPermissionApi { - /** 数据权限信息 */ - export interface Permission { - id?: number; // 数据权限编号 - userId: number; // 用户编号 - bizType: number; // Crm 类型 - bizId: number; // Crm 类型数据编号 - level: number; // 权限级别 - toBizTypes?: number[]; // 同时添加至 - deptName?: string; // 部门名称 - nickname?: string; // 用户昵称 - postNames?: string[]; // 岗位名称数组 - createTime?: Date; - ids?: number[]; - } - - /** 数据权限转移请求 */ - export interface TransferReq { - id: number; // 模块编号 - newOwnerUserId: number; // 新负责人的用户编号 - oldOwnerPermissionLevel?: number; // 老负责人加入团队后的权限级别 - toBizTypes?: number[]; // 转移客户时,需要额外有【联系人】【商机】【合同】的 checkbox 选择 - } - - /** - * CRM 业务类型枚举 - */ - export enum BizType { - CRM_BUSINESS = 4, // 商机 - CRM_CLUE = 1, // 线索 - CRM_CONTACT = 3, // 联系人 - CRM_CONTRACT = 5, // 合同 - CRM_CUSTOMER = 2, // 客户 - CRM_PRODUCT = 6, // 产品 - CRM_RECEIVABLE = 7, // 回款 - CRM_RECEIVABLE_PLAN = 8, // 回款计划 - } - - /** - * CRM 数据权限级别枚举 - */ - export enum PermissionLevel { - OWNER = 1, // 负责人 - READ = 2, // 只读 - WRITE = 3, // 读写 - } -} - -/** 获得数据权限列表(查询团队成员列表) */ -export function getPermissionList(params: PageParam) { - return requestClient.get>( - '/crm/permission/list', - { params }, - ); -} - -/** 创建数据权限(新增团队成员) */ -export function createPermission(data: CrmPermissionApi.Permission) { - return requestClient.post('/crm/permission/create', data); -} - -/** 编辑数据权限(修改团队成员权限级别) */ -export function updatePermission(data: CrmPermissionApi.Permission) { - return requestClient.put('/crm/permission/update', data); -} - -/** 删除数据权限(删除团队成员) */ -export function deletePermissionBatch(ids: number[]) { - return requestClient.delete(`/crm/permission/delete?ids=${ids.join(',')}`); -} - -/** 删除自己的数据权限(退出团队) */ -export function deleteSelfPermission(id: number) { - return requestClient.delete(`/crm/permission/delete-self?id=${id}`); -} diff --git a/apps/web-antd/src/api/crm/product/category/index.ts b/apps/web-antd/src/api/crm/product/category/index.ts deleted file mode 100644 index 656de98..0000000 --- a/apps/web-antd/src/api/crm/product/category/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { PageParam } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmProductCategoryApi { - /** 产品分类信息 */ - export interface ProductCategory { - id: number; - name: string; - parentId: number; - } -} - -/** 查询产品分类详情 */ -export function getProductCategory(id: number) { - return requestClient.get( - `/crm/product-category/get?id=${id}`, - ); -} - -/** 新增产品分类 */ -export function createProductCategory( - data: CrmProductCategoryApi.ProductCategory, -) { - return requestClient.post('/crm/product-category/create', data); -} - -/** 修改产品分类 */ -export function updateProductCategory( - data: CrmProductCategoryApi.ProductCategory, -) { - return requestClient.put('/crm/product-category/update', data); -} - -/** 删除产品分类 */ -export function deleteProductCategory(id: number) { - return requestClient.delete(`/crm/product-category/delete?id=${id}`); -} - -/** 产品分类列表 */ -export function getProductCategoryList(params?: PageParam) { - return requestClient.get( - '/crm/product-category/list', - { params }, - ); -} diff --git a/apps/web-antd/src/api/crm/product/index.ts b/apps/web-antd/src/api/crm/product/index.ts deleted file mode 100644 index 828495f..0000000 --- a/apps/web-antd/src/api/crm/product/index.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmProductApi { - /** 产品信息 */ - export interface Product { - id: number; - name: string; - no: string; - unit: number; - price: number; - status: number; - categoryId: number; - categoryName?: string; - description: string; - ownerUserId: number; - } -} - -/** 查询产品列表 */ -export function getProductPage(params: PageParam) { - return requestClient.get>( - '/crm/product/page', - { params }, - ); -} - -/** 获得产品精简列表 */ -export function getProductSimpleList() { - return requestClient.get('/crm/product/simple-list'); -} - -/** 查询产品详情 */ -export function getProduct(id: number) { - return requestClient.get(`/crm/product/get?id=${id}`); -} - -/** 新增产品 */ -export function createProduct(data: CrmProductApi.Product) { - return requestClient.post('/crm/product/create', data); -} - -/** 修改产品 */ -export function updateProduct(data: CrmProductApi.Product) { - return requestClient.put('/crm/product/update', data); -} - -/** 删除产品 */ -export function deleteProduct(id: number) { - return requestClient.delete(`/crm/product/delete?id=${id}`); -} - -/** 导出产品 */ -export function exportProduct(params: any) { - return requestClient.download('/crm/product/export-excel', params); -} diff --git a/apps/web-antd/src/api/crm/receivable/index.ts b/apps/web-antd/src/api/crm/receivable/index.ts deleted file mode 100644 index 96936c9..0000000 --- a/apps/web-antd/src/api/crm/receivable/index.ts +++ /dev/null @@ -1,90 +0,0 @@ -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; - no: string; - planId?: number; - period?: number; - customerId?: number; - customerName?: string; - contractId?: number; - contract?: Contract; - auditStatus: number; - processInstanceId: number; - returnTime: Date; - returnType: number; - price: number; - ownerUserId: number; - ownerUserName?: string; - remark: string; - creator: string; // 创建人 - creatorName?: string; // 创建人名称 - createTime: Date; // 创建时间 - updateTime: Date; // 更新时间 - } -} - -/** 查询回款列表 */ -export function getReceivablePage(params: PageParam) { - return requestClient.get>( - '/crm/receivable/page', - { params }, - ); -} - -/** 查询回款列表,基于指定客户 */ -export function getReceivablePageByCustomer(params: PageParam) { - return requestClient.get>( - '/crm/receivable/page-by-customer', - { params }, - ); -} - -/** 查询回款详情 */ -export function getReceivable(id: number) { - return requestClient.get( - `/crm/receivable/get?id=${id}`, - ); -} - -/** 新增回款 */ -export function createReceivable(data: CrmReceivableApi.Receivable) { - return requestClient.post('/crm/receivable/create', data); -} - -/** 修改回款 */ -export function updateReceivable(data: CrmReceivableApi.Receivable) { - return requestClient.put('/crm/receivable/update', data); -} - -/** 删除回款 */ -export function deleteReceivable(id: number) { - return requestClient.delete(`/crm/receivable/delete?id=${id}`); -} - -/** 导出回款 */ -export function exportReceivable(params: any) { - return requestClient.download('/crm/receivable/export-excel', params); -} - -/** 提交审核 */ -export function submitReceivable(id: number) { - return requestClient.put(`/crm/receivable/submit?id=${id}`); -} - -/** 获得待审核回款数量 */ -export function getAuditReceivableCount() { - return requestClient.get('/crm/receivable/audit-count'); -} diff --git a/apps/web-antd/src/api/crm/receivable/plan/index.ts b/apps/web-antd/src/api/crm/receivable/plan/index.ts deleted file mode 100644 index d237c1e..0000000 --- a/apps/web-antd/src/api/crm/receivable/plan/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmReceivablePlanApi { - /** 回款计划信息 */ - export interface Plan { - id: number; - period: number; - receivableId: number; - price: number; - returnTime: Date; - remindDays: number; - returnType: number; - remindTime: Date; - customerId: number; - customerName?: string; - contractId?: number; - contractNo?: string; - ownerUserId: number; - ownerUserName?: string; - remark: string; - creator: string; - creatorName?: string; - createTime: Date; - updateTime: Date; - receivable?: { - price: number; - returnTime: Date; - }; - } -} - -/** 查询回款计划列表 */ -export function getReceivablePlanPage(params: PageParam) { - return requestClient.get>( - '/crm/receivable-plan/page', - { params }, - ); -} - -/** 查询回款计划列表(按客户) */ -export function getReceivablePlanPageByCustomer(params: PageParam) { - return requestClient.get>( - '/crm/receivable-plan/page-by-customer', - { params }, - ); -} - -/** 查询回款计划详情 */ -export function getReceivablePlan(id: number) { - return requestClient.get( - '/crm/receivable-plan/get', - { params: { id } }, - ); -} - -/** 查询回款计划下拉数据 */ -export function getReceivablePlanSimpleList( - customerId: number, - contractId: number, -) { - return requestClient.get( - '/crm/receivable-plan/simple-list', - { - params: { customerId, contractId }, - }, - ); -} - -/** 新增回款计划 */ -export function createReceivablePlan(data: CrmReceivablePlanApi.Plan) { - return requestClient.post('/crm/receivable-plan/create', data); -} - -/** 修改回款计划 */ -export function updateReceivablePlan(data: CrmReceivablePlanApi.Plan) { - return requestClient.put('/crm/receivable-plan/update', data); -} - -/** 删除回款计划 */ -export function deleteReceivablePlan(id: number) { - return requestClient.delete('/crm/receivable-plan/delete', { - params: { id }, - }); -} - -/** 导出回款计划 Excel */ -export function exportReceivablePlan(params: PageParam) { - return requestClient.download('/crm/receivable-plan/export-excel', { - params, - }); -} - -/** 获得待回款提醒数量 */ -export function getReceivablePlanRemindCount() { - return requestClient.get('/crm/receivable-plan/remind-count'); -} diff --git a/apps/web-antd/src/api/crm/statistics/customer.ts b/apps/web-antd/src/api/crm/statistics/customer.ts deleted file mode 100644 index e661ba8..0000000 --- a/apps/web-antd/src/api/crm/statistics/customer.ts +++ /dev/null @@ -1,191 +0,0 @@ -import type { PageParam } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmStatisticsCustomerApi { - /** 客户总量分析(按日期) */ - export interface CustomerSummaryByDate { - time: string; - customerCreateCount: number; - customerDealCount: number; - } - - /** 客户总量分析(按用户) */ - export interface CustomerSummaryByUser { - ownerUserName: string; - customerCreateCount: number; - customerDealCount: number; - contractPrice: number; - receivablePrice: number; - } - - /** 客户跟进次数分析(按日期) */ - export interface FollowUpSummaryByDate { - time: string; - followUpRecordCount: number; - followUpCustomerCount: number; - } - - /** 客户跟进次数分析(按用户) */ - export interface FollowUpSummaryByUser { - ownerUserName: string; - followupRecordCount: number; - followupCustomerCount: number; - } - - /** 客户跟进方式统计 */ - export interface FollowUpSummaryByType { - followUpType: string; - followUpRecordCount: number; - } - - /** 合同摘要信息 */ - export interface CustomerContractSummary { - customerName: string; - contractName: string; - totalPrice: number; - receivablePrice: number; - customerType: string; - customerSource: string; - ownerUserName: string; - creatorUserName: string; - createTime: Date; - orderDate: Date; - } - - /** 客户公海分析(按日期) */ - export interface PoolSummaryByDate { - time: string; - customerPutCount: number; - customerTakeCount: number; - } - - /** 客户公海分析(按用户) */ - export interface PoolSummaryByUser { - ownerUserName: string; - customerPutCount: number; - customerTakeCount: number; - } - - /** 客户成交周期(按日期) */ - export interface CustomerDealCycleByDate { - time: string; - customerDealCycle: number; - } - - /** 客户成交周期(按用户) */ - export interface CustomerDealCycleByUser { - ownerUserName: string; - customerDealCycle: number; - customerDealCount: number; - } - - /** 客户成交周期(按地区) */ - export interface CustomerDealCycleByArea { - areaName: string; - customerDealCycle: number; - customerDealCount: number; - } - - /** 客户成交周期(按产品) */ - export interface CustomerDealCycleByProduct { - productName: string; - customerDealCycle: number; - customerDealCount: number; - } -} - -/** 客户总量分析(按日期) */ -export function getCustomerSummaryByDate(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-customer-summary-by-date', - { params }, - ); -} - -/** 客户总量分析(按用户) */ -export function getCustomerSummaryByUser(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-customer-summary-by-user', - { params }, - ); -} - -/** 客户跟进次数分析(按日期) */ -export function getFollowUpSummaryByDate(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-follow-up-summary-by-date', - { params }, - ); -} - -/** 客户跟进次数分析(按用户) */ -export function getFollowUpSummaryByUser(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-follow-up-summary-by-user', - { params }, - ); -} - -/** 获取客户跟进方式统计数 */ -export function getFollowUpSummaryByType(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-follow-up-summary-by-type', - { params }, - ); -} - -/** 合同摘要信息(客户转化率页面) */ -export function getContractSummary(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-contract-summary', - { params }, - ); -} - -/** 获取客户公海分析(按日期) */ -export function getPoolSummaryByDate(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-pool-summary-by-date', - { params }, - ); -} - -/** 获取客户公海分析(按用户) */ -export function getPoolSummaryByUser(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-pool-summary-by-user', - { params }, - ); -} - -/** 获取客户成交周期(按日期) */ -export function getCustomerDealCycleByDate(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-customer-deal-cycle-by-date', - { params }, - ); -} - -/** 获取客户成交周期(按用户) */ -export function getCustomerDealCycleByUser(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-customer-deal-cycle-by-user', - { params }, - ); -} - -/** 获取客户成交周期(按地区) */ -export function getCustomerDealCycleByArea(params: PageParam) { - return requestClient.get( - '/crm/statistics-customer/get-customer-deal-cycle-by-area', - { params }, - ); -} - -/** 获取客户成交周期(按产品) */ -export function getCustomerDealCycleByProduct(params: PageParam) { - return requestClient.get< - CrmStatisticsCustomerApi.CustomerDealCycleByProduct[] - >('/crm/statistics-customer/get-customer-deal-cycle-by-product', { params }); -} diff --git a/apps/web-antd/src/api/crm/statistics/funnel.ts b/apps/web-antd/src/api/crm/statistics/funnel.ts deleted file mode 100644 index a4948e6..0000000 --- a/apps/web-antd/src/api/crm/statistics/funnel.ts +++ /dev/null @@ -1,67 +0,0 @@ -import type { PageParam, PageResult } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmStatisticsFunnelApi { - /** 销售漏斗统计数据 */ - export interface FunnelSummary { - customerCount: number; // 客户数 - businessCount: number; // 商机数 - businessWinCount: number; // 赢单数 - } - - /** 商机分析(按日期) */ - export interface BusinessSummaryByDate { - time: string; // 时间 - businessCreateCount: number; // 商机数 - totalPrice: number | string; // 商机金额 - } - - /** 商机转化率分析(按日期) */ - export interface BusinessInversionRateSummaryByDate { - time: string; // 时间 - businessCount: number; // 商机数量 - businessWinCount: number; // 赢单商机数 - } -} - -/** 获取销售漏斗统计数据 */ -export function getFunnelSummary(params: PageParam) { - return requestClient.get( - '/crm/statistics-funnel/get-funnel-summary', - { params }, - ); -} - -/** 获取商机结束状态统计 */ -export function getBusinessSummaryByEndStatus(params: PageParam) { - return requestClient.get>( - '/crm/statistics-funnel/get-business-summary-by-end-status', - { params }, - ); -} - -/** 获取新增商机分析(按日期) */ -export function getBusinessSummaryByDate(params: PageParam) { - return requestClient.get( - '/crm/statistics-funnel/get-business-summary-by-date', - { params }, - ); -} - -/** 获取商机转化率分析(按日期) */ -export function getBusinessInversionRateSummaryByDate(params: PageParam) { - return requestClient.get< - CrmStatisticsFunnelApi.BusinessInversionRateSummaryByDate[] - >('/crm/statistics-funnel/get-business-inversion-rate-summary-by-date', { - params, - }); -} - -/** 获取商机列表(按日期) */ -export function getBusinessPageByDate(params: PageParam) { - return requestClient.get>( - '/crm/statistics-funnel/get-business-page-by-date', - { params }, - ); -} diff --git a/apps/web-antd/src/api/crm/statistics/performance.ts b/apps/web-antd/src/api/crm/statistics/performance.ts deleted file mode 100644 index ab34512..0000000 --- a/apps/web-antd/src/api/crm/statistics/performance.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { PageParam } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmStatisticsPerformanceApi { - /** 员工业绩统计 */ - export interface Performance { - time: string; - currentMonthCount: number; - lastMonthCount: number; - lastYearCount: number; - } -} - -/** 员工获得合同金额统计 */ -export function getContractPricePerformance(params: PageParam) { - return requestClient.get( - '/crm/statistics-performance/get-contract-price-performance', - { params }, - ); -} - -/** 员工获得回款统计 */ -export function getReceivablePricePerformance(params: PageParam) { - return requestClient.get( - '/crm/statistics-performance/get-receivable-price-performance', - { params }, - ); -} - -/** 员工获得签约合同数量统计 */ -export function getContractCountPerformance(params: PageParam) { - return requestClient.get( - '/crm/statistics-performance/get-contract-count-performance', - { params }, - ); -} diff --git a/apps/web-antd/src/api/crm/statistics/portrait.ts b/apps/web-antd/src/api/crm/statistics/portrait.ts deleted file mode 100644 index 88ff518..0000000 --- a/apps/web-antd/src/api/crm/statistics/portrait.ts +++ /dev/null @@ -1,69 +0,0 @@ -import type { PageParam } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmStatisticsPortraitApi { - /** 客户基础统计信息 */ - export interface CustomerBase { - customerCount: number; - dealCount: number; - dealPortion: number | string; - } - - /** 客户行业统计信息 */ - export interface CustomerIndustry extends CustomerBase { - industryId: number; - industryPortion: number | string; - } - - /** 客户来源统计信息 */ - export interface CustomerSource extends CustomerBase { - source: number; - sourcePortion: number | string; - } - - /** 客户级别统计信息 */ - export interface CustomerLevel extends CustomerBase { - level: number; - levelPortion: number | string; - } - - /** 客户地区统计信息 */ - export interface CustomerArea extends CustomerBase { - areaId: number; - areaName: string; - areaPortion: number | string; - } -} - -/** 获取客户行业统计数据 */ -export function getCustomerIndustry(params: PageParam) { - return requestClient.get( - '/crm/statistics-portrait/get-customer-industry-summary', - { params }, - ); -} - -/** 获取客户来源统计数据 */ -export function getCustomerSource(params: PageParam) { - return requestClient.get( - '/crm/statistics-portrait/get-customer-source-summary', - { params }, - ); -} - -/** 获取客户级别统计数据 */ -export function getCustomerLevel(params: PageParam) { - return requestClient.get( - '/crm/statistics-portrait/get-customer-level-summary', - { params }, - ); -} - -/** 获取客户地区统计数据 */ -export function getCustomerArea(params: PageParam) { - return requestClient.get( - '/crm/statistics-portrait/get-customer-area-summary', - { params }, - ); -} diff --git a/apps/web-antd/src/api/crm/statistics/rank.ts b/apps/web-antd/src/api/crm/statistics/rank.ts deleted file mode 100644 index f5fcfb1..0000000 --- a/apps/web-antd/src/api/crm/statistics/rank.ts +++ /dev/null @@ -1,76 +0,0 @@ -import type { PageParam } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace CrmStatisticsRankApi { - /** 排行统计数据 */ - export interface Rank { - count: number; - nickname: string; - deptName: string; - } -} - -/** 获得合同排行榜 */ -export function getContractPriceRank(params: PageParam) { - return requestClient.get( - '/crm/statistics-rank/get-contract-price-rank', - { params }, - ); -} - -/** 获得回款排行榜 */ -export function getReceivablePriceRank(params: PageParam) { - return requestClient.get( - '/crm/statistics-rank/get-receivable-price-rank', - { params }, - ); -} - -/** 签约合同排行 */ -export function getContractCountRank(params: PageParam) { - return requestClient.get( - '/crm/statistics-rank/get-contract-count-rank', - { params }, - ); -} - -/** 产品销量排行 */ -export function getProductSalesRank(params: PageParam) { - return requestClient.get( - '/crm/statistics-rank/get-product-sales-rank', - { params }, - ); -} - -/** 新增客户数排行 */ -export function getCustomerCountRank(params: PageParam) { - return requestClient.get( - '/crm/statistics-rank/get-customer-count-rank', - { params }, - ); -} - -/** 新增联系人数排行 */ -export function getContactsCountRank(params: PageParam) { - return requestClient.get( - '/crm/statistics-rank/get-contacts-count-rank', - { params }, - ); -} - -/** 跟进次数排行 */ -export function getFollowCountRank(params: PageParam) { - return requestClient.get( - '/crm/statistics-rank/get-follow-count-rank', - { params }, - ); -} - -/** 跟进客户数排行 */ -export function getFollowCustomerCountRank(params: PageParam) { - return requestClient.get( - '/crm/statistics-rank/get-follow-customer-count-rank', - { params }, - ); -} diff --git a/apps/web-antd/src/router/routes/modules/crm.ts b/apps/web-antd/src/router/routes/modules/crm.ts deleted file mode 100644 index 15cb00e..0000000 --- a/apps/web-antd/src/router/routes/modules/crm.ts +++ /dev/null @@ -1,91 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; - -const routes: RouteRecordRaw[] = [ - { - path: '/crm', - name: 'CrmCenter', - meta: { - title: '客户管理', - icon: 'simple-icons:civicrm', - keepAlive: true, - hideInMenu: true, - }, - children: [ - { - path: 'clue/detail/:id', - name: 'CrmClueDetail', - meta: { - title: '线索详情', - activeMenu: '/crm/clue', - }, - component: () => import('#/views/crm/clue/modules/detail.vue'), - }, - { - path: 'customer/detail/:id', - name: 'CrmCustomerDetail', - meta: { - title: '客户详情', - activeMenu: '/crm/customer', - }, - component: () => import('#/views/crm/customer/modules/detail.vue'), - }, - { - path: 'business/detail/:id', - name: 'CrmBusinessDetail', - meta: { - title: '商机详情', - activeMenu: '/crm/business', - }, - component: () => import('#/views/crm/business/modules/detail.vue'), - }, - { - path: 'contract/detail/:id', - name: 'CrmContractDetail', - meta: { - title: '合同详情', - activeMenu: '/crm/contract', - }, - component: () => import('#/views/crm/contract/modules/detail.vue'), - }, - { - path: 'receivable-plan/detail/:id', - name: 'CrmReceivablePlanDetail', - meta: { - title: '回款计划详情', - activeMenu: '/crm/receivable-plan', - }, - component: () => - import('#/views/crm/receivable/plan/modules/detail.vue'), - }, - { - path: 'receivable/detail/:id', - name: 'CrmReceivableDetail', - meta: { - title: '回款详情', - activeMenu: '/crm/receivable', - }, - component: () => import('#/views/crm/receivable/modules/detail.vue'), - }, - { - path: 'contact/detail/:id', - name: 'CrmContactDetail', - meta: { - title: '联系人详情', - activeMenu: '/crm/contact', - }, - component: () => import('#/views/crm/contact/modules/detail.vue'), - }, - { - path: 'product/detail/:id', - name: 'CrmProductDetail', - meta: { - title: '产品详情', - activeMenu: '/crm/product', - }, - component: () => import('#/views/crm/product/modules/detail.vue'), - }, - ], - }, -]; - -export default routes;