diff --git a/mobile-oa-h5/src/market/protocol-sample-transfer.js b/mobile-oa-h5/src/market/protocol-sample-transfer.js index 3c189d95..c6ea5289 100644 --- a/mobile-oa-h5/src/market/protocol-sample-transfer.js +++ b/mobile-oa-h5/src/market/protocol-sample-transfer.js @@ -94,12 +94,21 @@ export function buildTransferSavePayload(transfer) { } } -export function assertCanSaveTransfer({ protocolId, scheduleId } = {}) { - if (!String(protocolId || '').trim()) { - throw new Error('请先保存协议后再保存转账记录') +export function assertCanSaveTransfer({ protocolId, contextId, scheduleId } = {}) { + const ctx = String(contextId || protocolId || '').trim() + if (!ctx) { + throw new Error( + contextId != null && String(contextId).trim() === '' && protocolId == null + ? '请先保存后再保存转账记录' + : '请先保存协议后再保存转账记录' + ) } if (!String(scheduleId || '').trim()) { - throw new Error('请先保存协议后再保存转账记录') + throw new Error( + contextId != null + ? '缺少应缴批次,无法保存转账记录' + : '请先保存协议后再保存转账记录' + ) } } @@ -114,17 +123,17 @@ export function validateTransferRow(transfer) { return '' } -export function canSubmitFinance(transfer, protocolId) { +export function canSubmitFinance(transfer, contextId) { return Boolean( - String(protocolId || '').trim() && + String(contextId || '').trim() && transfer?.id && String(transfer.payStatus || 'dfj') === 'dfj' ) } -export function canWithdrawFinance(transfer, protocolId) { +export function canWithdrawFinance(transfer, contextId) { return Boolean( - String(protocolId || '').trim() && + String(contextId || '').trim() && transfer?.id && String(transfer.payStatus || '') === 'jfqrz' ) diff --git a/mobile-oa-h5/src/market/protocol-sample-transfer.test.js b/mobile-oa-h5/src/market/protocol-sample-transfer.test.js index 38a6edc4..00dca3b2 100644 --- a/mobile-oa-h5/src/market/protocol-sample-transfer.test.js +++ b/mobile-oa-h5/src/market/protocol-sample-transfer.test.js @@ -36,6 +36,23 @@ test('save requires persisted protocol and schedule ids', () => { assert.doesNotThrow(() => assertCanSaveTransfer({ protocolId: 'p1', scheduleId: 's1' })) }) +test('assertCanSaveTransfer accepts contextId alias for protocolId', () => { + assert.doesNotThrow(() => + assertCanSaveTransfer({ contextId: 'pay-1', scheduleId: 's1' }) + ) + assert.throws( + () => assertCanSaveTransfer({ contextId: '', scheduleId: 's1' }), + /请先保存/ + ) +}) + +test('canSubmitFinance accepts contextId', () => { + assert.equal( + canSubmitFinance({ id: 't1', payStatus: 'dfj' }, 'pay-1'), + true + ) +}) + test('validate transfer row requires type and positive amount', () => { assert.match(validateTransferRow({}), /转账方式/) assert.match(validateTransferRow({ transferType: 'wx', transferAmount: 0 }), /转账金额/)