Просмотр исходного кода

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>
zlwu 2 месяцев назад
Родитель
Сommit
86e668920c

+ 24 - 0
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)
+  })
+})

+ 13 - 0
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
+}