import type { PageParam, PageResult } from '@vben/request';
|
|
import { requestClient } from '#/api/request';
|
|
export namespace CrmSalesTargetApi {
|
/** 销售目标信息 */
|
export interface SalesTarget {
|
id?: number;
|
name?: string;
|
periodType?: number;
|
periodValue?: string;
|
startTime?: string;
|
endTime?: string;
|
targetDimension?: number;
|
targetUserId?: number;
|
targetUserName?: string;
|
targetDeptId?: number;
|
targetDeptName?: string;
|
targetItemId?: number;
|
targetItemName?: string;
|
contractTarget?: number;
|
receivableTarget?: number;
|
businessTarget?: number;
|
customerTarget?: number;
|
contractCountTarget?: number;
|
actualContractPrice?: number;
|
actualReceivablePrice?: number;
|
actualBusinessPrice?: number;
|
actualCustomerCount?: number;
|
actualContractCount?: number;
|
contractRate?: number;
|
receivableRate?: number;
|
businessRate?: number;
|
customerRate?: number;
|
contractCountRate?: number;
|
status?: number;
|
remark?: string;
|
creator?: string;
|
creatorName?: string;
|
createTime?: string;
|
updateTime?: string;
|
}
|
|
/** 销售目标分页查询参数 */
|
export interface PageParams extends PageParam {
|
name?: string;
|
periodType?: number;
|
periodValue?: string;
|
targetDimension?: number;
|
status?: number;
|
}
|
|
/** 销售目标达成分析查询参数 */
|
export interface AnalysisParams {
|
periodType?: number;
|
periodValue?: string;
|
targetDimension?: number;
|
status?: number;
|
}
|
}
|
|
/** 查询销售目标分页 */
|
export function getSalesTargetPage(params: CrmSalesTargetApi.PageParams) {
|
return requestClient.get<PageResult<CrmSalesTargetApi.SalesTarget>>(
|
'/crm/sales-target/page',
|
{ params },
|
);
|
}
|
|
/** 查询销售目标详情 */
|
export function getSalesTarget(id: number) {
|
return requestClient.get<CrmSalesTargetApi.SalesTarget>(
|
`/crm/sales-target/get?id=${id}`,
|
);
|
}
|
|
/** 新增销售目标 */
|
export function createSalesTarget(data: CrmSalesTargetApi.SalesTarget) {
|
return requestClient.post('/crm/sales-target/create', data);
|
}
|
|
/** 修改销售目标 */
|
export function updateSalesTarget(data: CrmSalesTargetApi.SalesTarget) {
|
return requestClient.put('/crm/sales-target/update', data);
|
}
|
|
/** 变更销售目标状态(作废/恢复等) */
|
export function changeSalesTargetStatus(data: {
|
id: number;
|
status: number;
|
}) {
|
return requestClient.put('/crm/sales-target/change-status', data);
|
}
|
|
/** 删除销售目标 */
|
export function deleteSalesTarget(id: number) {
|
return requestClient.delete(`/crm/sales-target/delete?id=${id}`);
|
}
|
|
/** 导出销售目标 */
|
export function exportSalesTarget(params: Record<string, unknown>) {
|
return requestClient.download('/crm/sales-target/export-excel', { params });
|
}
|
|
/** 查询销售目标达成分析 */
|
export function getSalesTargetAnalysis(
|
params: CrmSalesTargetApi.AnalysisParams,
|
) {
|
return requestClient.get<CrmSalesTargetApi.SalesTarget[]>(
|
'/crm/sales-target/get-achievement-analysis',
|
{ params },
|
);
|
}
|