diff --git a/src/api/crm/project/settlement/index.ts b/src/api/crm/project/settlement/index.ts index 3e489acdf..16ee4f2a4 100644 --- a/src/api/crm/project/settlement/index.ts +++ b/src/api/crm/project/settlement/index.ts @@ -3,27 +3,36 @@ import request from '@/config/axios' // 项目利润结算 VO export interface ProjectSettlementVO { id: number; // 结算记录ID - projectId: number; // 关联项目ID + projectId: number; // 项目ID + projectName: string; // 项目名称 + piles: string; // 枪数 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; // 税收 + startDate: string | Date | number[]; // 结算开始时间 + endDate: string | Date; // 结算结束时间 + settlementDate: string | Date | number[]; // 结算日期 + previousLossCarryover: number; // 上期亏损转结 + grossProfit: number; // 毛利润 netProfit: number; // 净利润 - expenseRemark: string; // 支出备注 settlementStatus: number; // 结算状态 - proofAttachment: string; // 结算凭证附件 - remark: string; // 结算备注 + actualRevenue?: number; // 实际营收 + governmentSubsidy?: number; // 政府补贴收入 + otherIncome?: number; // 其他项目收入 + totalIncome?: number; // 总收入 + incomeRemark?: string; // 收入备注 + electricityCost?: number; // 电费成本 + venueRent?: number; // 场地租金 + venueDeposit?: number; // 项目押金 + projectPromotion?: number; // 项目推介费 + equipmentUpgrade?: number; // 设备更新购置费 + managementCost?: number; // 管理费用 + taxCost?: number; // 税收 + otherExpenses?: number; // 其他支出 + totalExpenses?: number; // 总支出 + shareAmount?: number; // 分成金额 + expenseRemark?: string; // 支出备注 + proofAttachment?: string; // 结算凭证附件 + remark?: string; // 结算备注 } // 查询项目利润结算分页 @@ -55,3 +64,8 @@ export const deleteProjectSettlement = async (id: number) => { export const exportProjectSettlement = async (params: any) => { return await request.download({ url: `/crm/project-settlement/export-excel`, params }) } + +// 导出项目利润结算明细 Excel +export const exportProjectSettlementDetail = async (params: any) => { + return await request.download({ url: `/crm/receivable/export-settlement-excel`, params }) +} diff --git a/src/components/ElQuarterPicker/index.vue b/src/components/ElQuarterPicker/index.vue new file mode 100644 index 000000000..7fc27d54f --- /dev/null +++ b/src/components/ElQuarterPicker/index.vue @@ -0,0 +1,399 @@ + + + + + + + + + {{ title }} + + + + + + + + {{ viewList[(line - 1) * 4 + index - 1].label }} + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index d94be2370..d55ca50cf 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -599,6 +599,17 @@ const remainingRouter: AppRouteRecordRaw[] = [ activeMenu: '/crm/station-site' }, component: () => import('@/views/crm/stationsite/detail/index.vue') + }, + { + path: 'project/settlement/:id', + name: 'CrmProjectSettlementDetail', + meta: { + title: '利润结算详情', + noCache: true, + hidden: true, + activeMenu: '/crm/project/settlement' + }, + component: () => import('@/views/crm/project/settlement/detail/index.vue') } ] }, diff --git a/src/views/crm/project/ProjectForm.vue b/src/views/crm/project/ProjectForm.vue index 98deb1845..ac1d6ab62 100644 --- a/src/views/crm/project/ProjectForm.vue +++ b/src/views/crm/project/ProjectForm.vue @@ -8,7 +8,6 @@ v-loading="formLoading" > - {{ formData }} - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 确 定 @@ -58,6 +90,7 @@