From 81f9c98526ce6a29bdbc1c681db1ee56020272fe Mon Sep 17 00:00:00 2001 From: wersd <1523826083@qq.com> Date: Sat, 2 Aug 2025 19:35:49 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E9=A1=B9=E7=9B=AE=E7=BB=93=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/project/index.ts | 135 +++--- src/api/crm/project/settlement/index.ts | 57 +++ src/api/crm/receivable/other/index.ts | 85 ++++ src/views/crm/finance/writeoff/index.vue | 4 +- src/views/crm/project/index.vue | 350 +++++----------- .../settlement/ProjectSettlementForm.vue | 150 +++++++ src/views/crm/project/settlement/index.vue | 232 +++++++++++ .../components/SummaryOtherForm.vue | 43 ++ .../crm/receivable/other/PaymentForm.vue | 311 ++++++++++++++ .../crm/receivable/other/ReceivableForm.vue | 312 ++++++++++++++ src/views/crm/receivable/other/index.vue | 393 ++++++++++++++++++ src/views/crm/receivable/plan/index.vue | 2 +- 12 files changed, 1770 insertions(+), 304 deletions(-) create mode 100644 src/api/crm/project/settlement/index.ts create mode 100644 src/api/crm/receivable/other/index.ts create mode 100644 src/views/crm/project/settlement/ProjectSettlementForm.vue create mode 100644 src/views/crm/project/settlement/index.vue create mode 100644 src/views/crm/receivable/components/SummaryOtherForm.vue create mode 100644 src/views/crm/receivable/other/PaymentForm.vue create mode 100644 src/views/crm/receivable/other/ReceivableForm.vue create mode 100644 src/views/crm/receivable/other/index.vue diff --git a/src/api/crm/project/index.ts b/src/api/crm/project/index.ts index 8cd8190e6..44d3f30a3 100644 --- a/src/api/crm/project/index.ts +++ b/src/api/crm/project/index.ts @@ -1,59 +1,76 @@ -import request from '@/config/axios' - -// 项目利润结算 VO -export interface ProjectSettlementVO { - id: number // 结算记录ID - projectId: number // 关联项目ID - settlementPeriod: string // 结算周期(如:2023-Q1) - settlementDate: Date // 结算日期 - actualRevenue: number // 实际营收 - governmentSubsidy: number // 政府补贴收入 - otherIncome: number // 其他项目收入 - totalIncome: number // 总收入 - incomeRemark: string // 收入备注 - electricityCost: number // 电费成本 - venueRent: number // 场地租金 - venueDeposit: number // 项目押金 - projectPromotion: number // 项目推介费 - equipmentUpgrade: number // 设备更新购置费 - managementCost: number // 管理费用 - taxCost: number // 税收 - netProfit: number // 净利润 - expenseRemark: string // 支出备注 - settlementStatus: number // 结算状态 - proofAttachment: string // 结算凭证附件 - remark: string // 结算备注 -} - -// 项目利润结算 API -export const ProjectSettlementApi = { - // 查询项目利润结算分页 - getProjectSettlementPage: async (params: any) => { - return await request.get({ url: `/crm/project-settlement/page`, params }) - }, - - // 查询项目利润结算详情 - getProjectSettlement: async (id: number) => { - return await request.get({ url: `/crm/project-settlement/get?id=` + id }) - }, - - // 新增项目利润结算 - createProjectSettlement: async (data: ProjectSettlementVO) => { - return await request.post({ url: `/crm/project-settlement/create`, data }) - }, - - // 修改项目利润结算 - updateProjectSettlement: async (data: ProjectSettlementVO) => { - return await request.put({ url: `/crm/project-settlement/update`, data }) - }, - - // 删除项目利润结算 - deleteProjectSettlement: async (id: number) => { - return await request.delete({ url: `/crm/project-settlement/delete?id=` + id }) - }, - - // 导出项目利润结算 Excel - exportProjectSettlement: async (params) => { - return await request.download({ url: `/crm/project-settlement/export-excel`, params }) - }, -} \ No newline at end of file +import request from '@/config/axios' + +// CRM 项目信息 VO +export interface ProjectVO { + id: number // 主键ID + deptId: number // 部门ID + name?: string + siteId: number // 场地ID + totalInvestment: number // 项目总投资额 + ownerUserId: string // 项目合伙人 + ratio: string // 比例 + investment: string // 投资额 + cooperationAgreement: number // 场地租赁合同 + purchaseContractId: number // 设备采购合同ID + epcContractId: number // EPC施工合同ID + cooperationAgreementName?: String // 场地租赁合同名称 + purchaseContractName?: String // 设备采购合同名称 + epcContractName?: String // EPC施工合同名称 + buildPermit: string // 同意建桩证明 + ownershipProof: string // 场地权属证明 + projectRecord: string // 项目备案 + powerSupplyReply: string // 供电答复单 + investmentAgreement: string // 合作投资协议 + investmentShareAgreement: string // 合作投资分成协议 + supplementaryMaterials: string // 其他补充材料文件路径 + cooperationAgreementConfig?: number // 场地租赁合同配置 + purchaseContractConfig?: number // 设备采购合同配置 + epcContractConfig?: number // EPC施工合同配置 + buildPermitConfig?: number // 同意建桩证明配置 + ownershipProofConfig?: number // 场地权属证明配置 + projectRecordConfig?: number // 项目备案配置 + powerSupplyReplyConfig?: number // 供电答复单配置 + investmentAgreementConfig?: number // 合作投资协议配置 + investmentShareAgreementConfig?: number // 合作投资分成协议配置 + supplementaryMaterialsConfig?: number // 其他补充材料配置 + type: number // 类型 + partners: [] + RevenueSharePartners: [] + projectStatus: number // 状态 + estimatedPiles: number //枪数 +} + +// 查询CRM 项目信息分页 +export const getProjectPage = async (params: any) => { + return await request.get({ url: `/crm/project/page`, params }) +} + +// 查询CRM 项目信息详情 +export const getProject = async (id: number) => { + return await request.get({ url: `/crm/project/get?id=` + id }) +} + +// 新增CRM 项目信息 +export const createProject = async (data: ProjectVO) => { + return await request.post({ url: `/crm/project/create`, data }) +} + +// 修改CRM 项目信息 +export const updateProject = async (data: ProjectVO) => { + return await request.put({ url: `/crm/project/update`, data }) +} + +// 删除CRM 项目信息 +export const deleteProject = async (id: number) => { + return await request.delete({ url: `/crm/project/delete?id=` + id }) +} + +// 导出CRM 项目信息 Excel +export const exportProject = async (params: any) => { + return await request.download({ url: `/crm/project/export-excel`, params }) +} + +// 获取项目列表 +export const getProjectSimpleList = async () => { + return await request.get({ url: `/crm/project/simple-list` }) +} \ No newline at end of file diff --git a/src/api/crm/project/settlement/index.ts b/src/api/crm/project/settlement/index.ts new file mode 100644 index 000000000..3e489acdf --- /dev/null +++ b/src/api/crm/project/settlement/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +// 项目利润结算 VO +export interface ProjectSettlementVO { + id: number; // 结算记录ID + projectId: number; // 关联项目ID + settlementPeriod: string; // 结算周期(如:2023-Q1) + period: number; // 总期数 + settlementDate: Date; // 结算日期 + actualRevenue: number; // 实际营收 + governmentSubsidy: number; // 政府补贴收入 + otherIncome: number; // 其他项目收入 + totalIncome: number; // 总收入 + incomeRemark: string; // 收入备注 + electricityCost: number; // 电费成本 + venueRent: number; // 场地租金 + venueDeposit: number; // 项目押金 + projectPromotion: number; // 项目推介费 + equipmentUpgrade: number; // 设备更新购置费 + managementCost: number; // 管理费用 + taxCost: number; // 税收 + netProfit: number; // 净利润 + expenseRemark: string; // 支出备注 + settlementStatus: number; // 结算状态 + proofAttachment: string; // 结算凭证附件 + remark: string; // 结算备注 +} + +// 查询项目利润结算分页 +export const getProjectSettlementPage = async (params: any) => { + return await request.get({ url: `/crm/project-settlement/page`, params }) +} + +// 查询项目利润结算详情 +export const getProjectSettlement = async (id: number) => { + return await request.get({ url: `/crm/project-settlement/get?id=` + id }) +} + +// 新增项目利润结算 +export const createProjectSettlement = async (data: ProjectSettlementVO) => { + return await request.post({ url: `/crm/project-settlement/create`, data }) +} + +// 修改项目利润结算 +export const updateProjectSettlement = async (data: ProjectSettlementVO) => { + return await request.put({ url: `/crm/project-settlement/update`, data }) +} + +// 删除项目利润结算 +export const deleteProjectSettlement = async (id: number) => { + return await request.delete({ url: `/crm/project-settlement/delete?id=` + id }) +} + +// 导出项目利润结算 Excel +export const exportProjectSettlement = async (params: any) => { + return await request.download({ url: `/crm/project-settlement/export-excel`, params }) +} diff --git a/src/api/crm/receivable/other/index.ts b/src/api/crm/receivable/other/index.ts new file mode 100644 index 000000000..f64dcdc7d --- /dev/null +++ b/src/api/crm/receivable/other/index.ts @@ -0,0 +1,85 @@ +import request from '@/config/axios' + +export interface ReceivableVO { + id: number + no: string + planId?: number + period?: number // 期数 + customerId?: number + customerName?: string + contractId?: number + receivableType: number + paymentType: number + deptId: number + deptName?: string + projectId?: number + contract?: { + id?: number + name?: string + no: string + totalPrice: number + } + auditStatus: number + processInstanceId: number + returnTime: Date + returnType: number + transactionType: number // 交易类型:0-付款,1-收款 + price: number + ownerUserId: number + ownerUserName?: string + remark: string + creator: string // 创建人 + creatorName?: string // 创建人名称 + createTime: Date // 创建时间 + updateTime: Date // 更新时间 +} + +// 查询回款列表 +export const getReceivablePage = async (params) => { + return await request.get({ url: `/crm/receivable-other/page`, params }) +} + +// 查询回款列表 +export const getReceivablePageByCustomer = async (params) => { + return await request.get({ url: `/crm/receivable-other/page-by-customer`, params }) +} + +// 查询回款详情 +export const getReceivable = async (id: number) => { + return await request.get({ url: `/crm/receivable-other/get?id=` + id }) +} + +// 新增回款 +export const createReceivable = async (data: ReceivableVO) => { + return await request.post({ url: `/crm/receivable-other/create`, data }) +} + +// 修改回款 +export const updateReceivable = async (data: ReceivableVO) => { + return await request.put({ url: `/crm/receivable-other/update`, data }) +} + +// 删除回款 +export const deleteReceivable = async (id: number) => { + return await request.delete({ url: `/crm/receivable-other/delete?id=` + id }) +} + +// 导出回款 Excel +export const exportReceivable = async (params) => { + return await request.download({ url: `/crm/receivable-other/export-excel`, params }) +} + +// 提交审核 +export const submitReceivable = async (id: number) => { + return await request.put({ url: `/crm/receivable-other/submit?id=${id}` }) +} + +// 获得待审核回款数量 +export const getAuditReceivableCount = async () => { + return await request.get({ url: '/crm/receivable-other/audit-count' }) +} + +// 查询收付主体汇总金额 +export const queryReceivableSummary = async () => { + return await request.get({ url: '/crm/receivable-other/query-summary' }) +} diff --git a/src/views/crm/finance/writeoff/index.vue b/src/views/crm/finance/writeoff/index.vue index a7fc2fe7c..53178f24a 100644 --- a/src/views/crm/finance/writeoff/index.vue +++ b/src/views/crm/finance/writeoff/index.vue @@ -46,7 +46,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/src/views/crm/project/index.vue b/src/views/crm/project/index.vue index 8d1413eae..b614622f9 100644 --- a/src/views/crm/project/index.vue +++ b/src/views/crm/project/index.vue @@ -8,191 +8,46 @@ :inline="true" label-width="68px" > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + + - - - 搜索 重置 @@ -200,7 +55,7 @@ type="primary" plain @click="openForm('create')" - v-hasPermi="['crm:project-settlement:create']" + v-hasPermi="['crm:project:create']" > 新增 @@ -209,7 +64,7 @@ plain @click="handleExport" :loading="exportLoading" - v-hasPermi="['crm:project-settlement:export']" + v-hasPermi="['crm:project:export']" > 导出 @@ -220,40 +75,38 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/crm/project/settlement/ProjectSettlementForm.vue b/src/views/crm/project/settlement/ProjectSettlementForm.vue new file mode 100644 index 000000000..c6832c50d --- /dev/null +++ b/src/views/crm/project/settlement/ProjectSettlementForm.vue @@ -0,0 +1,150 @@ + + \ No newline at end of file diff --git a/src/views/crm/project/settlement/index.vue b/src/views/crm/project/settlement/index.vue new file mode 100644 index 000000000..6f3d28837 --- /dev/null +++ b/src/views/crm/project/settlement/index.vue @@ -0,0 +1,232 @@ + + + \ No newline at end of file diff --git a/src/views/crm/receivable/components/SummaryOtherForm.vue b/src/views/crm/receivable/components/SummaryOtherForm.vue new file mode 100644 index 000000000..867487877 --- /dev/null +++ b/src/views/crm/receivable/components/SummaryOtherForm.vue @@ -0,0 +1,43 @@ + + \ No newline at end of file diff --git a/src/views/crm/receivable/other/PaymentForm.vue b/src/views/crm/receivable/other/PaymentForm.vue new file mode 100644 index 000000000..a8bd5aabc --- /dev/null +++ b/src/views/crm/receivable/other/PaymentForm.vue @@ -0,0 +1,311 @@ + + diff --git a/src/views/crm/receivable/other/ReceivableForm.vue b/src/views/crm/receivable/other/ReceivableForm.vue new file mode 100644 index 000000000..3a792e7fc --- /dev/null +++ b/src/views/crm/receivable/other/ReceivableForm.vue @@ -0,0 +1,312 @@ + + diff --git a/src/views/crm/receivable/other/index.vue b/src/views/crm/receivable/other/index.vue new file mode 100644 index 000000000..3c8423958 --- /dev/null +++ b/src/views/crm/receivable/other/index.vue @@ -0,0 +1,393 @@ + + diff --git a/src/views/crm/receivable/plan/index.vue b/src/views/crm/receivable/plan/index.vue index 5e3bdbcd6..9991def21 100644 --- a/src/views/crm/receivable/plan/index.vue +++ b/src/views/crm/receivable/plan/index.vue @@ -245,7 +245,7 @@ - +
暂无数据