/** 采集协议单 · 缴费模式工具(已废除硬编码价目表) */ export type PayMode = 'dj' | 'fq' | 'djfq' | 'fgd' export function getActiveSampleCount(samples: Array<{ sampleStatus?: string }>): 1 | 2 { const n = samples.filter((s) => String(s.sampleStatus || '') !== 'yzf').length return (n >= 2 ? 2 : 1) as 1 | 2 } export function isInstallmentPayMode(payMode: string): boolean { return payMode === 'fq' || payMode === 'djfq' } /** 需要配置多期 schedule 的模式(分期 / 趸交+分期 / 分改趸) */ export function isMultiSchedulePayMode(payMode: string): boolean { return payMode === 'fq' || payMode === 'djfq' || payMode === 'fgd' } export function availablePayModes(sampleCount: 1 | 2): PayMode[] { return sampleCount === 2 ? ['dj', 'djfq', 'fq', 'fgd'] : ['dj', 'fq', 'fgd'] } /** 校验缴费模式与样本数是否匹配(如 djfq 仅双样本) */ export function isPayModeValidForSampleCount(payMode: PayMode, sampleCount: 1 | 2): boolean { return availablePayModes(sampleCount).includes(payMode) }