import type { CordysAxios } from '@lib/shared/api/http/Axios'; import { AddBusinessViewUrl, AddOpportunityStageUrl, AddOptFollowPlanUrl, AddOptFollowRecordUrl, AddQuotationUrl, AddQuotationViewUrl, AdvancedSearchOptDetailUrl, AdvancedSearchOptPageUrl, ApprovalQuotationUrl, BatchApproveUrl, BatchUpdateQuotationUrl, BatchUpdateOpportunityUrl, BatchVoidedUrl, CancelOptFollowPlanUrl, DeleteBusinessViewUrl, DeleteOpportunityStageUrl, DeleteOptFollowPlanUrl, DeleteOptFollowRecordUrl, DeleteQuotationUrl, DeleteQuotationViewUrl, DownloadOptTemplateUrl, DownloadQuotationUrl, DragBusinessViewUrl, DragQuotationViewUrl, EnableBusinessViewUrl, EnableQuotationViewUrl, ExportOpportunityAllUrl, ExportOpportunitySelectedUrl, FixedBusinessViewUrl, FixedQuotationViewUrl, GenerateOpportunityChartUrl, GetBusinessViewDetailUrl, GetBusinessViewListUrl, GetOpportunityContactListUrl, GetOpportunityStageConfigUrl, GetOptDetailUrl, GetOptFollowPlanUrl, GetOptFollowRecordUrl, GetOptFormConfigUrl, GetOptStatisticUrl, GetOptTabUrl, GetQuotationDetailUrl, GetQuotationFormConfigUrl, GetQuotationSnapshotDetailUrl, GetQuotationSnapshotFormConfigUrl, GetQuotationTabUrl, GetQuotationViewDetailUrl, GetQuotationViewListUrl, GlobalSearchOptPageUrl, ImportOpportunityUrl, OptAddUrl, OptBatchDeleteUrl, OptBatchTransferUrl, OptDeleteUrl, OptFollowPlanPageUrl, OptFollowRecordListUrl, OptPageUrl, OptUpdateStageUrl, OptUpdateUrl, PreCheckOptImportUrl, QuotationPageUrl, RevokeQuotationUrl, SortOpportunityStageUrl, SortOpportunityUrl, UpdateBusinessViewUrl, UpdateOpportunityStageRollbackUrl, UpdateOpportunityStageUrl, UpdateOptFollowPlanStatusUrl, UpdateOptFollowPlanUrl, UpdateOptFollowRecordUrl, UpdateQuotationUrl, UpdateQuotationViewUrl, VoidQuotationUrl, } from '@lib/shared/api/requrls/opportunity'; import type { ChartResponseDataItem, CommonList, GenerateChartParams, TableDraggedParams, TableExportParams, TableExportSelectedParams, TableQueryParams, } from '@lib/shared/models/common'; import type { BatchUpdatePoolAccountParams, CustomerContractTableParams, CustomerFollowPlanTableParams, CustomerFollowRecordTableParams, CustomerTabHidden, FollowDetailItem, SaveCustomerFollowPlanParams, SaveCustomerFollowRecordParams, TransferParams, UpdateCustomerFollowPlanParams, UpdateCustomerFollowRecordParams, UpdateFollowPlanStatusParams, } from '@lib/shared/models/customer'; import type { AddOpportunityStageParams, ApproveQuotation, BatchOperationResult, BatchUpdateQuotationStatusParams, BatchVoidQuotationStatusParams, StageBoardPageQueryParams, StageBoardDraggedParams, OpportunityDetail, OpportunityItem, OpportunityStageConfig, QuotationItem, QuotationQueryParams, SaveOpportunityParams, SaveQuotationParams, UpdateOpportunityParams, UpdateOpportunityStageParams, UpdateOpportunityStageRollbackParams, UpdateQuotationParams, } from '@lib/shared/models/opportunity'; import type { FormDesignConfigDetailParams } from '@lib/shared/models/system/module'; import { ValidateInfo } from '@lib/shared/models/system/org'; import type { ViewItem, ViewParams } from '@lib/shared/models/view'; export default function useProductApi(CDR: CordysAxios) { // 商机列表 function getOpportunityList(data: StageBoardPageQueryParams) { return CDR.post>({ url: OptPageUrl, data }, { ignoreCancelToken: true }); } // 添加商机 function addOpportunity(data: SaveOpportunityParams) { return CDR.post({ url: OptAddUrl, data }); } // 更新商机 function updateOpportunity(data: UpdateOpportunityParams) { return CDR.post({ url: OptUpdateUrl, data }); } // 商机详情 function getOpportunityDetail(id: string) { return CDR.get({ url: `${GetOptDetailUrl}/${id}` }); } // 商机看板拖拽排序 function sortOpportunity(data: StageBoardDraggedParams) { return CDR.post({ url: SortOpportunityUrl, data }); } // 获取商机表单配置 function getOptFormConfig() { return CDR.get({ url: GetOptFormConfigUrl }); } // 商机跟进记录列表 function getOptFollowRecordList(data: CustomerFollowRecordTableParams) { return CDR.post>({ url: OptFollowRecordListUrl, data }); } // 删除商机跟进记录 function deleteOptFollowRecord(id: string) { return CDR.get({ url: `${DeleteOptFollowRecordUrl}/${id}` }); } // 添加商机跟进记录 function addOptFollowRecord(data: SaveCustomerFollowRecordParams) { return CDR.post({ url: AddOptFollowRecordUrl, data }); } // 更新商机跟进记录 function updateOptFollowRecord(data: UpdateCustomerFollowRecordParams) { return CDR.post({ url: UpdateOptFollowRecordUrl, data }); } // 获取商机跟进记录详情 function getOptFollowRecord(id: string) { return CDR.get({ url: `${GetOptFollowRecordUrl}/${id}` }); } // 跟进计划列表 function getOptFollowPlanList(data: CustomerFollowPlanTableParams) { return CDR.post>({ url: OptFollowPlanPageUrl, data }); } // 添加商机跟进计划 function addOptFollowPlan(data: SaveCustomerFollowPlanParams) { return CDR.post({ url: AddOptFollowPlanUrl, data }); } // 更新商机跟进计划 function updateOptFollowPlan(data: UpdateCustomerFollowPlanParams) { return CDR.post({ url: UpdateOptFollowPlanUrl, data }); } // 删除商机跟进计划 function deleteOptFollowPlan(id: string) { return CDR.get({ url: `${DeleteOptFollowPlanUrl}/${id}` }); } // 获取商机跟进计划详情 function getOptFollowPlan(id: string) { return CDR.get({ url: `${GetOptFollowPlanUrl}/${id}` }); } // 取消商机跟进计划 function cancelOptFollowPlan(id: string) { return CDR.get({ url: `${CancelOptFollowPlanUrl}/${id}` }); } // 批量转移商机 function transferOpt(data: TransferParams) { return CDR.post({ url: OptBatchTransferUrl, data }); } // 批量删除商机 function batchDeleteOpt(data: (string | number)[]) { return CDR.post({ url: OptBatchDeleteUrl, data }); } // 删除商机 function deleteOpt(id: string) { return CDR.get({ url: `${OptDeleteUrl}/${id}` }); } // 更新商机阶段 function updateOptStage(data: { id: string; stage: string; failureReason?: string | null }) { return CDR.post({ url: OptUpdateStageUrl, data }); } // 获取商机tab显隐藏 function getOptTab() { return CDR.get({ url: GetOptTabUrl }); } // 获取商机联系人列表 function getOpportunityContactList(data: CustomerContractTableParams) { return CDR.get({ url: `${GetOpportunityContactListUrl}/${data.id}` }); } // 更新商机跟进计划状态 function updateOptFollowPlanStatus(data: UpdateFollowPlanStatusParams) { return CDR.post({ url: UpdateOptFollowPlanStatusUrl, data }); } // 导出全量商机列表 function exportOpportunityAll(data: TableExportParams) { return CDR.post({ url: ExportOpportunityAllUrl, data }); } // 导出选中商机列表 function exportOpportunitySelected(data: TableExportSelectedParams) { return CDR.post({ url: ExportOpportunitySelectedUrl, data }); } // 商机列表的金额数据 function getOptStatistic(data: TableQueryParams) { return CDR.post({ url: GetOptStatisticUrl, data }, { ignoreCancelToken: true }); } // 更新商机阶段配置 function updateOpportunityStage(data: UpdateOpportunityStageParams) { return CDR.post({ url: UpdateOpportunityStageUrl, data }); } // 商机阶段回退配置 function updateOpportunityStageRollback(data: UpdateOpportunityStageRollbackParams) { return CDR.post({ url: UpdateOpportunityStageRollbackUrl, data }); } // 商机阶段排序 function sortOpportunityStage(data: string[]) { return CDR.post({ url: SortOpportunityStageUrl, data }); } // 添加商机阶段 function addOpportunityStage(data: AddOpportunityStageParams) { return CDR.post({ url: AddOpportunityStageUrl, data }); } // 获取商机阶段配置 function getOpportunityStageConfig() { return CDR.get({ url: GetOpportunityStageConfigUrl }, { ignoreCancelToken: true }); } // 删除商机阶段 function deleteOpportunityStage(id: string) { return CDR.get({ url: `${DeleteOpportunityStageUrl}/${id}` }); } // 生成商机图表 function generateOpportunityChart(data: GenerateChartParams) { return CDR.post({ url: GenerateOpportunityChartUrl, data }); } // 商机视图 function addBusinessView(data: ViewParams) { return CDR.post({ url: AddBusinessViewUrl, data }); } function updateBusinessView(data: ViewParams) { return CDR.post({ url: UpdateBusinessViewUrl, data }); } function getBusinessViewList() { return CDR.get({ url: GetBusinessViewListUrl }); } function getBusinessViewDetail(id: string) { return CDR.get({ url: `${GetBusinessViewDetailUrl}/${id}` }); } function fixedBusinessView(id: string) { return CDR.get({ url: `${FixedBusinessViewUrl}/${id}` }); } function enableBusinessView(id: string) { return CDR.get({ url: `${EnableBusinessViewUrl}/${id}` }); } function deleteBusinessView(id: string) { return CDR.get({ url: `${DeleteBusinessViewUrl}/${id}` }); } function dragBusinessView(data: TableDraggedParams) { return CDR.post({ url: DragBusinessViewUrl, data }); } function globalSearchOptPage(data: TableQueryParams) { return CDR.post>({ url: GlobalSearchOptPageUrl, data }, { ignoreCancelToken: true }); } function advancedSearchOptPage(data: TableQueryParams) { return CDR.post>({ url: AdvancedSearchOptPageUrl, data }, { ignoreCancelToken: true }); } function advancedSearchOptDetail(data: TableQueryParams) { return CDR.post>({ url: AdvancedSearchOptDetailUrl, data }); } function preCheckImportOpt(file: File) { return CDR.uploadFile<{ data: ValidateInfo }>({ url: PreCheckOptImportUrl }, { fileList: [file] }, 'file'); } function downloadOptTemplate() { return CDR.get( { url: DownloadOptTemplateUrl, responseType: 'blob', }, { isTransformResponse: false, isReturnNativeResponse: true } ); } function importOpportunity(file: File) { return CDR.uploadFile({ url: ImportOpportunityUrl }, { fileList: [file] }, 'file'); } // 批量更新商机 function batchUpdateOpportunity(data: BatchUpdatePoolAccountParams) { return CDR.post({ url: BatchUpdateOpportunityUrl, data }); } // 获取商机报价单tab显隐藏 function getQuotationTab() { return CDR.get({ url: GetQuotationTabUrl }); } // 报价单视图 function addQuotationView(data: ViewParams) { return CDR.post({ url: AddQuotationViewUrl, data }); } function updateQuotationView(data: ViewParams) { return CDR.post({ url: UpdateQuotationViewUrl, data }); } function getQuotationViewList() { return CDR.get({ url: GetQuotationViewListUrl }); } function getQuotationViewDetail(id: string) { return CDR.get({ url: `${GetQuotationViewDetailUrl}/${id}` }); } function fixedQuotationView(id: string) { return CDR.get({ url: `${FixedQuotationViewUrl}/${id}` }); } function enableQuotationView(id: string) { return CDR.get({ url: `${EnableQuotationViewUrl}/${id}` }); } function deleteQuotationView(id: string) { return CDR.get({ url: `${DeleteQuotationViewUrl}/${id}` }); } function dragQuotationView(data: TableDraggedParams) { return CDR.post({ url: DragQuotationViewUrl, data }); } // 报价单 // 报价列表 function getQuotationList(data: QuotationQueryParams) { return CDR.post>({ url: QuotationPageUrl, data }); } // 添加报价 function addQuotation(data: SaveQuotationParams) { return CDR.post({ url: AddQuotationUrl, data }); } // 更新报价 function updateQuotation(data: UpdateQuotationParams, approvalTaskId?: string) { return CDR.post({ url: UpdateQuotationUrl, data, params: { approvalTaskId } }); } // 报价详情 function getQuotationDetail(id: string, approvalTaskId?: string) { return CDR.get({ url: `${GetQuotationDetailUrl}/${id}`, params: { approvalTaskId } }); } // 报价单快照详情 function getQuotationSnapshotDetail(id: string, approvalTaskId?: string) { return CDR.get({ url: `${GetQuotationSnapshotDetailUrl}/${id}`, params: { approvalTaskId } }); } // 获取报价表单配置 function getQuotationFormConfig() { return CDR.get({ url: GetQuotationFormConfigUrl }); } // 获取报价表单快照配置 function getQuotationSnapshotFormConfig(id?: string, approvalTaskId?: string) { return CDR.get({ url: `${GetQuotationSnapshotFormConfigUrl}/${id}`, params: { approvalTaskId }, }); } // 删除报价 function deleteQuotation(id: string) { return CDR.get({ url: `${DeleteQuotationUrl}/${id}` }); } // 作废报价 function voidQuotation(id: string) { return CDR.get({ url: `${VoidQuotationUrl}/${id}` }); } // 审批报价 function approvalQuotation(data: ApproveQuotation) { return CDR.post({ url: ApprovalQuotationUrl, data }); } // 撤销报价 function revokeQuotation(id: string) { return CDR.get({ url: `${RevokeQuotationUrl}/${id}` }); } function batchApprove(data: BatchUpdateQuotationStatusParams) { return CDR.post({ url: BatchApproveUrl, data }); } function batchVoided(data: BatchVoidQuotationStatusParams) { return CDR.post({ url: BatchVoidedUrl, data }); } function batchUpdateQuotation(data: BatchUpdatePoolAccountParams) { return CDR.post({ url: BatchUpdateQuotationUrl, data }); } function downloadQuotation(id: string) { return CDR.get({ url: `${DownloadQuotationUrl}/${id}` }); } return { getOpportunityList, addOpportunity, updateOpportunity, getOpportunityDetail, getOptFormConfig, getOptFollowRecordList, deleteOptFollowRecord, addOptFollowRecord, updateOptFollowRecord, getOptFollowRecord, getOptFollowPlanList, addOptFollowPlan, updateOptFollowPlan, deleteOptFollowPlan, getOptFollowPlan, cancelOptFollowPlan, transferOpt, batchDeleteOpt, deleteOpt, updateOptStage, getOptTab, getOpportunityContactList, updateOptFollowPlanStatus, exportOpportunityAll, exportOpportunitySelected, addBusinessView, deleteBusinessView, fixedBusinessView, getBusinessViewDetail, getBusinessViewList, updateBusinessView, enableBusinessView, dragBusinessView, advancedSearchOptPage, globalSearchOptPage, advancedSearchOptDetail, preCheckImportOpt, downloadOptTemplate, importOpportunity, getOptStatistic, batchUpdateOpportunity, sortOpportunity, updateOpportunityStage, updateOpportunityStageRollback, sortOpportunityStage, addOpportunityStage, getOpportunityStageConfig, deleteOpportunityStage, generateOpportunityChart, getQuotationTab, addQuotationView, deleteQuotationView, fixedQuotationView, getQuotationViewDetail, getQuotationViewList, updateQuotationView, enableQuotationView, dragQuotationView, getQuotationList, addQuotation, updateQuotation, getQuotationDetail, getQuotationSnapshotDetail, getQuotationFormConfig, getQuotationSnapshotFormConfig, deleteQuotation, approvalQuotation, voidQuotation, revokeQuotation, batchApprove, batchVoided, batchUpdateQuotation, downloadQuotation, }; }