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 <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-09-02 11:57:27 +08:00
1 parent 7f9516e63d
commit 86e668920c
2 files changed
+37

No files matched your search

@@ -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)
})
})
@@ -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
}