diff --git a/src/api/edu/contract/types.ts b/src/api/edu/contract/types.ts index 9af746d..5a24f92 100644 --- a/src/api/edu/contract/types.ts +++ b/src/api/edu/contract/types.ts @@ -37,6 +37,8 @@ export const paymentMethodOptions = [ { label: '信用卡', value: 'CARD' } ]; +import type { PaymentPlanVO, PaymentPlanForm } from '@/api/edu/payment-plan/types'; + export interface ContractPackageVO { id: number | string; contractId: number | string; @@ -141,6 +143,8 @@ export interface ContractVO extends BaseEntity { logs: any[]; /** 里程碑列表(升学服务合同) */ milestones?: any[]; + /** 缴费计划列表(分期合同) */ + paymentPlans?: PaymentPlanVO[]; } export interface ContractForm { @@ -161,6 +165,12 @@ export interface ContractForm { isInstallment: string; installmentSecond: number; installmentThird: number; + /** 分期数 2 或 3 */ + installmentCount?: number; + /** 缴费计划明细(分期时携带) */ + paymentPlans?: PaymentPlanForm[]; + /** 应收总额(前端汇总展示, 后端汇总覆盖) */ + totalAmount?: number; actualTotalReceived: number; settlementDate: string; signPerson: string; diff --git a/src/api/edu/payment-plan/index.ts b/src/api/edu/payment-plan/index.ts new file mode 100644 index 0000000..06b147d --- /dev/null +++ b/src/api/edu/payment-plan/index.ts @@ -0,0 +1,18 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { PaymentPlanVO, PaymentReceiveForm, EduPaymentPlanBoPayload } from './types'; + +// 查询某合同的缴费计划列表 +export function listPaymentPlan(contractId: number | string): AxiosPromise { + return request({ url: '/edu/contract/payment-plan/list/' + contractId, method: 'get' }); +} + +// 修改单期计划(仅待收态) +export function updatePaymentPlan(data: EduPaymentPlanBoPayload) { + return request({ url: '/edu/contract/payment-plan', method: 'put', data }); +} + +// 收款确认(联动账本) +export function receivePayment(data: PaymentReceiveForm) { + return request({ url: '/edu/contract/payment-plan/receive', method: 'put', data }); +} diff --git a/src/api/edu/payment-plan/types.ts b/src/api/edu/payment-plan/types.ts new file mode 100644 index 0000000..199a899 --- /dev/null +++ b/src/api/edu/payment-plan/types.ts @@ -0,0 +1,42 @@ +export const paymentPlanStatusOptions = [ + { label: '待收', value: '0', elTagType: 'warning' }, + { label: '已收', value: '1', elTagType: 'success' }, + { label: '已作废', value: '4', elTagType: 'info' } +]; + +export interface PaymentPlanVO { + id: number | string; + contractId: number | string; + installmentNo: number; + planAmount: number; + planDate: string; + paidAmount: number; + paidDate: string; + paymentMethod: string; + status: string; + remark: string; +} + +/** 表单用: 新增/修改合同时携带的计划明细 */ +export interface PaymentPlanForm { + installmentNo: number; + planAmount: number; + planDate: string; +} + +/** 修改单期计划载荷(匹配后端 EduPaymentPlanBo) */ +export interface EduPaymentPlanBoPayload { + id: number | string; + planAmount?: number; + planDate?: string; + remark?: string; +} + +/** 收款确认表单 */ +export interface PaymentReceiveForm { + id: number | string; + paidAmount: number; + paymentMethod: string; + paidDate: string; + remark?: string; +}