import { getList as getReceivablePayableDetailList } from '@/api/settlement/receivable-payable-detail'; import { getList as getWaybillList } from '@/api/business/waybill-manage'; // 结算明细的「单据号」是应收应付明细单据号(应收 YS…/应付 YF…),按结算类型落到对应菜单页 const SETTLEMENT_DETAIL_PATHS = { receivable: '/settlement/receivable-detail', payable: '/settlement/payable-detail', }; const unwrapPage = response => { const body = response?.data || response || {}; return body?.data || body; }; const firstRecordId = data => (Array.isArray(data) ? data : data?.records || [])[0]?.id || ''; export const settlementDetailPath = settlementType => SETTLEMENT_DETAIL_PATHS[settlementType] || SETTLEMENT_DETAIL_PATHS.payable; /** * 结算明细行「单据号」对应的应收应付明细ID:已落库的明细自带 sourceDetailId,未落库的行按单据号回查。 */ export const resolveReceivablePayableDetailId = async (row = {}, settlementType) => { if (row.sourceDetailId) return row.sourceDetailId; if (!row.documentNo) return ''; try { const data = unwrapPage( await getReceivablePayableDetailList(1, 1, { documentNo: row.documentNo, settlementType, }) ); return firstRecordId(data); } catch (error) { return ''; } }; /** * 结算明细行「运单号」对应的运单ID:总单来源的明细没有 waybillId(运单号列存的是总单号),按运单号回查。 */ export const resolveWaybillId = async (row = {}) => { if (row.waybillId) return row.waybillId; if (!row.waybillNo) return ''; try { const data = unwrapPage(await getWaybillList(1, 1, { waybillNo: row.waybillNo })); return firstRecordId(data); } catch (error) { return ''; } };