liu
2026-09-14 18340ebdeb405be3ba01eb4d1600d9b26cee7ccd
src/api/crm/contract/index.ts
@@ -1,4 +1,4 @@
import type { PageParam, PageResult } from '..\..\..\packages\effects\request\src';
import type { PageParam, PageResult } from '@vben/request';
import type { CrmPermissionApi } from '#/api/crm/permission';
@@ -26,7 +26,10 @@
    totalProductPrice: number;
    discountPercent: number;
    totalPrice: number;
    depositPrice?: number; // 定金金额,单位:元
    totalReceivablePrice: number;
    totalInvoicePrice?: number; // 已开票金额(含审批中),单位:元
    unInvoicePrice?: number; // 未开票金额,单位:元
    signContactId: number;
    signContactName?: string;
    signUserId: number;
@@ -38,19 +41,31 @@
    updateTime?: Date;
    products?: ContractProduct[];
    contactName?: string;
    orderId?: number; // 关联 ERP 销售订单编号
    orderNo?: string; // ERP 销售订单单号
  }
  /** 合同产品信息 */
  export interface ContractProduct {
    id: number;
    productId: number;
    productName: string;
    productNo: string;
    productUnit: number;
    productPrice: number;
    itemId: number;
    itemName: string;
    itemCode: string;
    itemBarCode: string;
    itemSpecification?: string;
    itemUnitName: string;
    itemUnitName2?: string;
    itemUnitName3?: string;
    itemPrice: number;
    contractPrice: number;
    count: number;
    totalPrice: number;
  }
  /** 审批流程 */
  export interface ApproveProcess {
    key: string;
    name: string;
  }
}
@@ -113,8 +128,17 @@
}
/** 提交审核 */
export function submitContract(id: number) {
  return requestClient.put(`/crm/contract/submit?id=${id}`);
export function submitContract(id: number, processDefinitionKey: string) {
  return requestClient.put('/crm/contract/submit', null, {
    params: { id, processDefinitionKey },
  });
}
/** 获取合同审批流程列表 */
export function getContractApproveProcessList() {
  return requestClient.get<CrmContractApi.ApproveProcess[]>(
    '/crm/contract/approve-process-list',
  );
}
/** 合同转移 */
@@ -131,3 +155,28 @@
export function getRemindContractCount() {
  return requestClient.get<number>('/crm/contract/remind-count');
}
/** 根据合同生成销售订单 */
export function generateSaleOrder(id: number) {
  return requestClient.post<number>('/crm/contract/generate-sale-order', null, { params: { id } });
}
/** 合同导入结果 */
export interface ImportResult {
  /** 创建成功的合同编号 */
  createList?: string[];
  /** 更新成功的合同编号 */
  updateList?: string[];
  /** 导入失败集合,key 为合同编号或行号,value 为失败原因 */
  failureList?: Record<string, string>;
}
/** 下载合同导入模板 */
export function importContractTemplate() {
  return requestClient.download('/crm/contract/get-import-template');
}
/** 导入合同 */
export function importContract(file: File) {
  return requestClient.upload<ImportResult>('/crm/contract/import', { file });
}