From 86e668920c6af59a670f7582a6e6ebc9b15ecbd6 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Wed, 2 Sep 2026 11:57:27 +0800 Subject: [PATCH] feat(web-admin): add resolveAddressNotesFill for address library notes Encode empty-only fill rule for load/delivery notes when selecting an address. Co-authored-by: Cursor --- .../src/utils/pl-address-notes-fill.test.ts | 24 +++++++++++++++++++ web-admin/src/utils/pl-address-notes-fill.ts | 13 ++++++++++ 2 files changed, 37 insertions(+) create mode 100644 web-admin/src/utils/pl-address-notes-fill.test.ts create mode 100644 web-admin/src/utils/pl-address-notes-fill.ts 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 +}