diff --git a/web-admin/src/utils/pl-address-notes-fill.test.ts b/web-admin/src/utils/pl-address-notes-fill.test.ts new file mode 100644 index 000000000..c36be21b0 --- /dev/null +++ b/web-admin/src/utils/pl-address-notes-fill.test.ts @@ -0,0 +1,24 @@ +import assert from 'node:assert/strict' +import { describe, it } from 'node:test' +import { resolveAddressNotesFill } from './pl-address-notes-fill' + +describe('resolveAddressNotesFill', () => { + it('returns library notes when current is empty', () => { + assert.equal(resolveAddressNotesFill('', '大门左侧卸货'), '大门左侧卸货') + assert.equal(resolveAddressNotesFill(' ', '大门左侧卸货'), '大门左侧卸货') + assert.equal(resolveAddressNotesFill(null, '大门左侧卸货'), '大门左侧卸货') + assert.equal(resolveAddressNotesFill(undefined, ' trim me '), 'trim me') + }) + + it('returns undefined when library notes empty', () => { + assert.equal(resolveAddressNotesFill('', ''), undefined) + assert.equal(resolveAddressNotesFill('已有', ''), undefined) + assert.equal(resolveAddressNotesFill('已有', ' '), undefined) + assert.equal(resolveAddressNotesFill('已有', null), undefined) + }) + + it('returns undefined when current notes already set', () => { + assert.equal(resolveAddressNotesFill('表单已有', '库内注意事项'), undefined) + assert.equal(resolveAddressNotesFill(' 表单已有 ', '库内'), undefined) + }) +}) diff --git a/web-admin/src/utils/pl-address-notes-fill.ts b/web-admin/src/utils/pl-address-notes-fill.ts new file mode 100644 index 000000000..c03ea63a8 --- /dev/null +++ b/web-admin/src/utils/pl-address-notes-fill.ts @@ -0,0 +1,13 @@ +/** + * 地址库注意事项 → 装/送货注意事项回填。 + * 仅当库内有非空 notes 且当前表单 notes 为空(trim)时返回待写入值;否则 undefined(不改动)。 + */ +export function resolveAddressNotesFill( + currentNotes: string | null | undefined, + libraryNotes: string | null | undefined +): string | undefined { + const lib = (libraryNotes || '').trim() + if (!lib) return undefined + if ((currentNotes || '').trim()) return undefined + return lib +}