chore: initial commit
This commit is contained in:
551
frontend/packages/lib-shared/api/modules/opportunity.ts
Normal file
551
frontend/packages/lib-shared/api/modules/opportunity.ts
Normal file
@@ -0,0 +1,551 @@
|
||||
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<CommonList<OpportunityItem>>({ 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<OpportunityDetail>({ url: `${GetOptDetailUrl}/${id}` });
|
||||
}
|
||||
|
||||
// 商机看板拖拽排序
|
||||
function sortOpportunity(data: StageBoardDraggedParams) {
|
||||
return CDR.post({ url: SortOpportunityUrl, data });
|
||||
}
|
||||
|
||||
// 获取商机表单配置
|
||||
function getOptFormConfig() {
|
||||
return CDR.get<FormDesignConfigDetailParams>({ url: GetOptFormConfigUrl });
|
||||
}
|
||||
|
||||
// 商机跟进记录列表
|
||||
function getOptFollowRecordList(data: CustomerFollowRecordTableParams) {
|
||||
return CDR.post<CommonList<FollowDetailItem>>({ 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<FollowDetailItem>({ url: `${GetOptFollowRecordUrl}/${id}` });
|
||||
}
|
||||
|
||||
// 跟进计划列表
|
||||
function getOptFollowPlanList(data: CustomerFollowPlanTableParams) {
|
||||
return CDR.post<CommonList<FollowDetailItem>>({ 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<FollowDetailItem>({ 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<CustomerTabHidden>({ 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<OpportunityStageConfig>({ url: GetOpportunityStageConfigUrl }, { ignoreCancelToken: true });
|
||||
}
|
||||
|
||||
// 删除商机阶段
|
||||
function deleteOpportunityStage(id: string) {
|
||||
return CDR.get({ url: `${DeleteOpportunityStageUrl}/${id}` });
|
||||
}
|
||||
|
||||
// 生成商机图表
|
||||
function generateOpportunityChart(data: GenerateChartParams) {
|
||||
return CDR.post<ChartResponseDataItem[]>({ 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<ViewItem[]>({ 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<CommonList<OpportunityItem>>({ url: GlobalSearchOptPageUrl, data }, { ignoreCancelToken: true });
|
||||
}
|
||||
|
||||
function advancedSearchOptPage(data: TableQueryParams) {
|
||||
return CDR.post<CommonList<OpportunityItem>>({ url: AdvancedSearchOptPageUrl, data }, { ignoreCancelToken: true });
|
||||
}
|
||||
|
||||
function advancedSearchOptDetail(data: TableQueryParams) {
|
||||
return CDR.post<CommonList<OpportunityItem>>({ 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<CustomerTabHidden>({ 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<ViewItem[]>({ 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<CommonList<QuotationItem>>({ 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<QuotationItem>({ url: `${GetQuotationDetailUrl}/${id}`, params: { approvalTaskId } });
|
||||
}
|
||||
|
||||
// 报价单快照详情
|
||||
function getQuotationSnapshotDetail(id: string, approvalTaskId?: string) {
|
||||
return CDR.get<QuotationItem>({ url: `${GetQuotationSnapshotDetailUrl}/${id}`, params: { approvalTaskId } });
|
||||
}
|
||||
|
||||
// 获取报价表单配置
|
||||
function getQuotationFormConfig() {
|
||||
return CDR.get<FormDesignConfigDetailParams>({ url: GetQuotationFormConfigUrl });
|
||||
}
|
||||
|
||||
// 获取报价表单快照配置
|
||||
function getQuotationSnapshotFormConfig(id?: string, approvalTaskId?: string) {
|
||||
return CDR.get<FormDesignConfigDetailParams>({
|
||||
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<BatchOperationResult>({ url: BatchApproveUrl, data });
|
||||
}
|
||||
|
||||
function batchVoided(data: BatchVoidQuotationStatusParams) {
|
||||
return CDR.post<BatchOperationResult>({ 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,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user