import request from '@/config/axios' import { Contract, ContractId, ContractSub } from '@/interface/contract' import { ProjectId } from '@/interface/project' import { listToTree } from '@/utils/tree' /** * 合同详情(无分包数据) * @param contractId */ export const getContractsById = async (contractId: ContractId): Promise => { return await request.get( { url: '/contract', params: { contractId } }, '/business' ) } /** * 判断项目是否签订合同 * @param projectId */ export const isProjectContractExist = async (projectId: ProjectId): Promise => { const data = await request.get( { url: '/project/contract/exist', params: { projectId } }, '/business' ) return data } /** * 合同详情与分包合同列表 * @param projectId */ export const getContractsByProject = async (projectId: ProjectId): Promise => { const data = await request.get( { url: '/contract-with-children', params: { projectId } }, '/business' ) return data } /** * 编辑保存合同信息 * @param contract */ export const putContract = async (contract: Contract) => { return await request.put( { url: '/contract', data: contract }, '/business' ) } /** * 编辑保存分包外包合同信息 * @param contract */ export const putContractSub = async (contract: ContractSub) => { return await request.put( { url: '/contractSub', data: contract }, '/business' ) } /** * 合同里程碑 * @param contractId */ export const getContractMilestoneList = async (contractId: ContractId) => { return await request.get( { url: '/contract-milestone/list', params: { contractId } }, '/business' ) } /** * 合同回款 * @param contractId */ export const getContractReturnedMoneyList = async (contractId: ContractId) => { return await request.get( { url: '/contract-return-money/list', params: { contractId } }, '/business' ) } /** * 合同付款 * @param contractId */ export const getContractPaymentList = async (contractId: ContractId) => { return await request.get( { url: '/contract-payment/list', params: { contractId } }, '/business' ) } /** * 合同付款汇总 * @param contractId */ export const getContractPaymentCalc = async (contractId: ContractId) => { return await request.get( { url: '/contract-payment/calc', params: { contractId } }, '/business' ) } /** * 合同查分包金额承担信息 * @param contractId */ export const getContractSharingList = async (contractId: ContractId) => { return await request.get( { url: '/subtract-sharing/list', params: { contractId } }, '/business' ) } /** * 发起分包合同申请 * @param contractId */ export const startSubcontractApply = async (projectId: string) => { return await request.get( { url: '/contract-apply/sub/process', params: { projectId } }, '/business' ) } /** * 发起外包合同申请 * @param contractId */ export const startOutsourcingApply = async (projectId: string) => { return await request.get( { url: '/contract-apply/out/process', params: { projectId } }, '/business' ) } /** * 发起分包合同签订 * @param contractId */ export const startSubcontract = async (applyId: string) => { return await request.get( { url: '/subcontract/process', params: { applyId } }, '/business' ) } /** * 发起外包合同签订 * @param contractId */ export const startOutsourcing = async (applyId: string) => { return await request.get( { url: '/outsourcing/process', params: { applyId } }, '/business' ) } /** * 发起合同签订 * @param projectId */ export const startContractSign = async (projectId: ProjectId) => { return await request.get( { url: '/contract/process', params: { projectId } }, '/business' ) } /** * 委托方Tree数据 * @param contractId */ export const queryCustomerTree = async () => { const contractList = await request.get( { url: '/customer-tree' }, '/business' ) return listToTree(contractList) } /** * 受托方Tree数据 * @param contractId */ export const queryCompanyTree = async () => { const contractList = await request.get( { url: '/common/company-tree' }, '/business' ) return listToTree(contractList) } /** * 发起开票申请流程 * @param contractId */ export const startContractInvoice = async (contractId?: string) => { return await request.get( { url: '/contractInvoice/process', params: { contractId } }, '/business' ) } /** * 发起用款申请流程 * @param contractId */ export const startUseMoney = async (payload: { projectId?: string contractId?: string supplierId?: string }) => { return await request.get( { url: '/UseMoney/contractProcess', params: { projectId: payload.projectId, supplierId: payload.supplierId } }, '/business' ) } /*** * 软件产品列表 */ export const productSoftpatent = async () => { return await request.get( { url: '/productSoftpatent/list' }, '/business' ) }